In diesem Abschnitt wird beschrieben, wie Sie das Fahrzeug für geplante Aufgaben vorbereiten. Sie müssen alle folgenden Schritte ausführen, bevor Ihr Backend ein Fahrzeug einer Aufgabe zuordnen kann.
Listener einrichten
Da das Driver SDK Aktionen im Hintergrund ausführt, verwenden Sie DriverStatusListener, um Benachrichtigungen auszulösen, wenn bestimmte Ereignisse auftreten, z. B. Fehler, Warnungen oder Debug-Meldungen. Fehler können vorübergehend sein (z. B. BACKEND_CONNECTIVITY_ERROR) oder dazu führen, dass Standort-Updates dauerhaft beendet werden. Wenn Sie beispielsweise einen VEHICLE_NOT_FOUND-Fehler erhalten, deutet dies auf einen Konfigurationsfehler hin.
Das folgende Beispiel zeigt eine DriverStatusListener-Implementierung:
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());
Standort-Updates aktivieren
Sobald Sie eine *VehicleReporter-Instanz haben, aktivieren Sie Standort-Updates so:
Java
DeliveryVehicleReporter reporter = ...;
reporter.enableLocationTracking();
Kotlin
val reporter = ...
reporter.enableLocationTracking()
Optional: Aktualisierungsintervall festlegen
Standardmäßig sendet das Driver SDK Standort-Updates in Intervallen von 10 Sekunden. Jede Standortaktualisierung gibt auch an, dass das Fahrzeug online ist. Sie können dieses Intervall mit reporter.setLocationReportingInterval(long, TimeUnit) ändern. Das unterstützte Mindestintervall für Aktualisierungen beträgt 5 Sekunden. Häufigere Aktualisierungen können zu langsameren Anfragen und Fehlern führen.