Z tej sekcji dowiesz się, jak przygotować pojazd do zaplanowanych zadań. Zanim Twój backend będzie mógł dopasować pojazd do zadania, musisz wykonać wszystkie poniższe czynności.
Konfigurowanie listenera
Pakiet Driver SDK wykonuje działania w tle, dlatego użyj DriverStatusListener
, aby wywoływać powiadomienia o wystąpieniu określonych zdarzeń, takich jak błędy, ostrzeżenia lub komunikaty debugowania. Błędy mogą być przejściowe (np. BACKEND_CONNECTIVITY_ERROR
) lub mogą spowodować trwałe zatrzymanie aktualizacji lokalizacji. Jeśli na przykład wystąpił błąd VEHICLE_NOT_FOUND
, oznacza to, że wystąpił błąd konfiguracji.
Poniższy przykład pokazuje implementację 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());
Włączanie aktualizacji lokalizacji
Gdy masz instancję *VehicleReporter
, włącz aktualizacje lokalizacji w ten sposób:
Java
DeliveryVehicleReporter reporter = ...;
reporter.enableLocationTracking();
Kotlin
val reporter = ...
reporter.enableLocationTracking()
(Opcjonalnie) Ustaw interwał aktualizacji
Domyślnie pakiet Driver SDK wysyła aktualizacje lokalizacji co 10 sekund. Każda aktualizacja lokalizacji wskazuje również, że pojazd jest online. Możesz zmienić ten interwał za pomocą funkcji reporter.setLocationReportingInterval(long, TimeUnit)
. Minimalny obsługiwany odstęp czasu aktualizacji to 5 sekund. Częstsze aktualizacje mogą powodować wolniejsze żądania i błędy.