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