В этом разделе показано, как подготовить автомобиль к запланированным задачам. Вы должны выполнить каждый из следующих шагов, прежде чем ваш сервер сможет сопоставить транспортное средство с задачей.
Настройка прослушивателя
Поскольку 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());
Включить обновление местоположений
Если у вас есть экземпляр *VehicleReporter
, включите обновление местоположений следующим образом:
Ява
DeliveryVehicleReporter reporter = ...;
reporter.enableLocationTracking();
Котлин
val reporter = ...
reporter.enableLocationTracking()
(Необязательно) Установите интервал обновления
По умолчанию Driver SDK отправляет обновления местоположения с интервалом в 10 секунд. Каждое обновление местоположения также указывает на то, что автомобиль находится в сети. Вы можете изменить этот интервал с помощью reporter.setLocationReportingInterval(long, TimeUnit)
. Минимальный поддерживаемый интервал обновления составляет 5 секунд. Более частые обновления могут привести к замедлению запросов и ошибкам.