Préparer le véhicule

Cette section explique comment préparer le véhicule pour les trajets. Vous devez effectuer chacune des étapes suivantes pour que votre backend puisse associer un véhicule à un trajet.

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 de nature transitoire (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 l'écouteur configuré, activez les mises à jour de la position comme suit :

Java

RidesharingVehicleReporter reporter = ...;

reporter.enableLocationTracking();

Kotlin

val reporter = ...

reporter.enableLocationTracking()

Définir l'intervalle de mise à jour

Par défaut, le Driver SDK envoie des mises à jour de la position à intervalles de 10 secondes lorsque l'état du véhicule est ONLINE. 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.

Définir l'état du véhicule sur "En ligne"

Lorsque vous activez les mises à jour de la position, vous pouvez définir l'état du véhicule sur ONLINE pour le rendre disponible pour les requêtes SearchVehicles dans Fleet Engine. Le Driver SDK envoie l'état mis à jour du véhicule avec les mises à jour de la position.

Vous pouvez définir l'état du véhicule directement dans le Driver SDK ou dans le serveur Fleet Engine. Pour en savoir plus, consultez Mettre à jour un véhicule.

Les exemples suivants montrent comment définir l'état du véhicule sur "En ligne" dans le Driver SDK :

Java

RidesharingVehicleReporter reporter = ...;

reporter.enableLocationTracking();
reporter.setVehicleState(VehicleState.ONLINE);

Kotlin

val reporter = ...

reporter.enableLocationTracking()
reporter.setVehicleState(VehicleState.ONLINE)

Le StatusListener signale également toutes les erreurs qui se produisent lors de la mise à jour de l'état du véhicule.

Étape suivante

Définir les détails du trajet