Przygotuj pojazd

W tej sekcji dowiesz się, jak przygotować pojazd do podróży. Zanim backend będzie mógł dopasować pojazd do przejazdu, 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 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 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

Po skonfigurowaniu listenera włącz aktualizacje lokalizacji w ten sposób:

Java

RidesharingVehicleReporter reporter = ...;

reporter.enableLocationTracking();

Kotlin

val reporter = ...

reporter.enableLocationTracking()

Ustawianie interwału aktualizacji

Domyślnie pakiet Driver SDK wysyła aktualizacje lokalizacji co 10 sekund, gdy stan pojazdu to ONLINE. Możesz zmienić ten interwał za pomocą reporter.setLocationReportingInterval(long, TimeUnit). Minimalny obsługiwany interwał aktualizacji to 5 sekund. Częstsze aktualizacje mogą powodować wolniejsze żądania i błędy.

Ustaw stan pojazdu na „online”

Po włączeniu aktualizacji lokalizacji możesz ustawić stan pojazdu na ONLINE, aby udostępnić go do zapytań SearchVehicles w Fleet Engine. Pakiet Driver SDK wysyła zaktualizowany stan pojazdu wraz z aktualizacjami lokalizacji.

Stan pojazdu możesz ustawić bezpośrednio w Driver SDK lub na serwerze Fleet Engine. Więcej informacji znajdziesz w artykule Aktualizowanie pojazdu.

W podanych niżej przykładach pokazano, jak ustawić stan pojazdu na „online” w Driver SDK:

Java

RidesharingVehicleReporter reporter = ...;

reporter.enableLocationTracking();
reporter.setVehicleState(VehicleState.ONLINE);

Kotlin

val reporter = ...

reporter.enableLocationTracking()
reporter.setVehicleState(VehicleState.ONLINE)
.

Raport StatusListener zawiera też wszystkie błędy występujące podczas aktualizowania stanu pojazdu.

Co dalej?

Ustawianie szczegółów podróży