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

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

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

Поскольку 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 также сообщает о любых ошибках, возникающих при обновлении состояния транспортного средства.

Дальнейшие действия

Как задать сведения о поездке