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.