W tej sekcji dowiesz się, jak przygotować pojazd do zaplanowanych zadań. Zanim backend będzie mógł dopasować pojazd do zadania, musisz wykonać wszystkie te czynności.
Konfigurowanie detektora
Pakiet Driver SDK wykonuje działania w tle, więc używaj DriverStatusListener, aby wywoływać powiadomienia o określonych zdarzeniach, takich jak błędy, ostrzeżenia czy komunikaty debugowania. Błędy mogą być przejściowe (np. BACKEND_CONNECTIVITY_ERROR) lub mogą powodować trwałe zatrzymanie aktualizacji lokalizacji. Jeśli na przykład otrzymasz błąd VEHICLE_NOT_FOUND, oznacza to 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) Ustawianie interwału aktualizacji
Domyślnie pakiet Driver SDK wysyła aktualizacje lokalizacji co 10 sekund. Każda aktualizacja lokalizacji oznacza też, że pojazd jest online. Możesz zmienić ten interwał, klikając reporter.setLocationReportingInterval(long, TimeUnit). Minimalny obsługiwany interwał aktualizacji to 5 sekund. Częstsze aktualizacje mogą powodować wolniejsze działanie żądań i błędy.