Préparer le véhicule

Cette section explique comment préparer le véhicule pour les tâches planifiées. Vous devez effectuer chacune des étapes suivantes pour que votre backend puisse associer un véhicule à une tâche.

Configurer l'écouteur

Étant donné que le Driver SDK effectue des actions en arrière-plan, utilisez DriverStatusListener pour déclencher des notifications lorsque certains événements se produisent, tels que des erreurs, des avertissements ou des messages de débogage. Les erreurs peuvent être temporaires (comme BACKEND_CONNECTIVITY_ERROR) ou entraîner l'arrêt définitif des mises à jour de la position. Par exemple, si vous recevez une erreur VEHICLE_NOT_FOUND, cela indique une erreur de configuration.

L'exemple suivant montre une implémentation DriverStatusListener :

class MyStatusListener implements DriverStatusListener {
  /** Called when background status is updated, during actions such as location reporting. */
  @Override
  public void updateStatus(
      StatusLevel statusLevel, StatusCode statusCode, String statusMsg, @Nullable Throwable cause) {
    // Existing implementation

    if (cause != null && cause instanceof StatusRuntimeException) {
      if (Status.NOT_FOUND.getCode().equals(cause.getStatus().getCode())) {
        // NOT_FOUND gRPC exception thrown by Fleet Engine.
      }
    }
  }
}

DriverContextBuilder.setDriverStatusListener(new MyStatusListener());

Activer les mises à jour de la position

Une fois que vous disposez d'une instance *VehicleReporter, activez les mises à jour de la position comme suit :

Java

DeliveryVehicleReporter reporter = ...;

reporter.enableLocationTracking();

Kotlin

val reporter = ...

reporter.enableLocationTracking()

(Facultatif) Définir l'intervalle de mise à jour

Par défaut, le Driver SDK envoie des mises à jour de la position toutes les 10 secondes. Chaque mise à jour de la position indique également que le véhicule est en ligne. Vous pouvez modifier cet intervalle avec reporter.setLocationReportingInterval(long, TimeUnit). L'intervalle de mise à jour minimal accepté est de 5 secondes. Des mises à jour plus fréquentes peuvent entraîner des requêtes plus lentes et des erreurs.