Подготовьте автомобиль

В этом разделе показано, как подготовить автомобиль к поездкам. Вам необходимо выполнить каждый из следующих шагов, прежде чем ваш сервер сможет сопоставить автомобиль с поездкой.

Настроить прослушиватель

Поскольку 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());

Включить обновления местоположения

После настройки прослушивателя включите обновления местоположения следующим образом:

Ява

RidesharingVehicleReporter reporter = ...;

reporter.enableLocationTracking();

Котлин

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:

Ява

RidesharingVehicleReporter reporter = ...;

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

Котлин

val reporter = ...

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

StatusListener также сообщает о любых ошибках, возникающих при обновлении состояния транспортного средства.

Что дальше?

Установите детали поездки