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 detektora
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 informacji o zmianie lokalizacji. Jeśli na przykład pojawi się 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 informacji o zmianie lokalizacji
Po skonfigurowaniu detektora włącz informacje o zmianie 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 informacje o zmianie 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.
Ustawianie stanu pojazdu na online
Gdy włączysz informację o zmianie lokalizacji, możesz ustawić stan pojazdu na ONLINE, aby pojazd był dostępny dla zapytań SearchVehicles w Fleet Engine. Pakiet SDK dla kierowców wysyła zaktualizowany stan pojazdu wraz z informacjami o zmianie lokalizacji.
Stan pojazdu możesz ustawić bezpośrednio w pakiecie SDK dla kierowców lub na serwerze Fleet Engine. Więcej informacji znajdziesz w artykule Aktualizowanie pojazdu.
Poniższe przykłady pokazują, jak ustawić stan pojazdu na online w pakiecie Driver SDK:
Java
RidesharingVehicleReporter reporter = ...;
reporter.enableLocationTracking();
reporter.setVehicleState(VehicleState.ONLINE);
Kotlin
val reporter = ...
reporter.enableLocationTracking()
reporter.setVehicleState(VehicleState.ONLINE)
StatusListener zgłasza też błędy, które wystąpiły podczas aktualizowania stanu pojazdu.
Co dalej?
Ustawianie szczegółów przejazdu