Cette section explique comment préparer le véhicule aux tâches planifiées. Vous devez effectuer chacune des étapes suivantes avant que votre backend puisse faire correspondre un véhicule à une tâche.
Configurer un écouteur
Étant donné que le SDK Driver effectue des actions dans
arrière-plan, utilisez le 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 temporaire (par exemple, BACKEND_CONNECTIVITY_ERROR
), ou elles peuvent entraîner l'arrêt définitif des mises à jour de position. Par exemple, si vous recevez une
VEHICLE_NOT_FOUND
, cela indique une erreur de configuration.
L'exemple suivant illustre une implémentation de 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 SDK Driver 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 ce paramètre
intervalle avec
reporter.setLocationReportingInterval(long, TimeUnit)
La taille minimale acceptée
l'intervalle de mise à jour est de 5 secondes. Des mises à jour plus fréquentes peuvent entraîner des requêtes plus lentes et des erreurs.