Przygotuj pojazd

W tej sekcji dowiesz się, jak przygotować pojazd do przejazdów. Zanim backend będzie mógł dopasować pojazd do przejazdu, musisz wykonać wszystkie te czynności.

Konfigurowanie odbiornika

Pakiet Driver SDK wykonuje działania w tle, dlatego użyj DriverStatusListener, aby wywoływać powiadomienia, gdy wystąpią określone zdarzenia, takie jak błędy, ostrzeżenia lub komunikaty debugowania. Błędy mogą mieć charakter przejściowy (np. BACKEND_CONNECTIVITY_ERROR) lub mogą spowodować 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

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

Ustawianie stanu pojazdu na „dostępny”

Gdy włączysz aktualizacje lokalizacji, możesz ustawić stan pojazdu na ONLINE, aby był on dostępny w przypadku 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 pakiecie Driver SDK lub na serwerze Fleet Engine. Więcej informacji znajdziesz w artykule Aktualizowanie pojazdu.

Poniższe przykłady pokazują, jak ustawić stan pojazdu na „dostępny” w pakiecie Driver SDK:

Java

RidesharingVehicleReporter reporter = ...;

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

Kotlin

val reporter = ...

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

Element StatusListener zgłasza też wszelkie błędy, które wystąpią podczas aktualizowania stanu pojazdu.

Co dalej?

Ustawianie szczegółów przejazdu