В этом разделе рассказывается, как подготовить автомобиль к поездкам. Чтобы сопоставить автомобиль с поездкой, необходимо выполнить следующие действия:
Как настроить прослушиватель
Поскольку Driver SDK выполняет действия в фоновом режиме, используйте DriverStatusListener, чтобы активировать уведомления при возникновении определенных событий, например ошибок, предупреждений или сообщений отладки. Ошибки могут быть временными (например, BACKEND_CONNECTIVITY_ERROR) или приводить к постоянной остановке обновления местоположения. Например, если вы получили ошибку VEHICLE_NOT_FOUND, это указывает на ошибку конфигурации.
Ниже приведен пример реализации 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());
Как включить обновление данных о местоположении
После настройки прослушивателя включите уведомления о местоположении следующим образом:
Java
RidesharingVehicleReporter reporter = ...;
reporter.enableLocationTracking();
Kotlin
val reporter = ...
reporter.enableLocationTracking()
Как задать интервал обновления
По умолчанию Driver SDK отправляет уведомления о местоположении с интервалом в 10 секунд, когда транспортное средство находится в состоянии ONLINE. Этот интервал можно изменить с помощью правила reporter.setLocationReportingInterval(long, TimeUnit). Минимальный поддерживаемый интервал обновления – 5 секунд. Более частое обновление может привести к замедлению запросов и ошибкам.
Как перевести автомобиль в онлайн-режим
Когда вы включаете уведомления о местоположении, вы можете задать для состояния транспортного средства значение ONLINE, чтобы сделать его доступным для запросов SearchVehicles в Fleet Engine. Driver SDK отправляет обновленные данные о состоянии автомобиля вместе с данными о местоположении.
Вы можете задать статус автомобиля непосредственно в Driver SDK или на сервере Fleet Engine. Подробнее о том, как обновить информацию об автомобиле…
В следующих примерах показано, как установить статус транспортного средства в сети в Driver SDK:
Java
RidesharingVehicleReporter reporter = ...;
reporter.enableLocationTracking();
reporter.setVehicleState(VehicleState.ONLINE);
Kotlin
val reporter = ...
reporter.enableLocationTracking()
reporter.setVehicleState(VehicleState.ONLINE)
StatusListener также сообщает о любых ошибках, возникающих при обновлении состояния транспортного средства.
Дальнейшие действия
Как указать сведения о поездке