Przygotuj pojazd

W tej sekcji dowiesz się, jak przygotować pojazd do zaplanowanych zadań. Zanim backend będzie mógł dopasować pojazd do zadania, musisz wykonać te 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 czy 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 pojawi się błąd VEHICLE_NOT_FOUND, oznacza to błąd konfiguracji.

Ten 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ą opcji reporter.setLocationReportingInterval(long, TimeUnit). Minimalny obsługiwany interwał aktualizacji to 5 sekund. Częstsze aktualizacje mogą powodować wolniejsze żądania i błędy.