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