En esta sección, se muestra cómo preparar el vehículo para las tareas programadas. Debes completa cada uno de los siguientes pasos antes de que tu backend pueda vincular un vehículo una tarea.
Configura el objeto de escucha
Dado que el SDK del controlador realiza acciones en el
en segundo plano, usa DriverStatusListener
para activar notificaciones cuando se cumplan ciertas
como errores, advertencias o mensajes de depuración. Los errores pueden ser de naturaleza transitoria (como BACKEND_CONNECTIVITY_ERROR
) o pueden hacer que las actualizaciones de ubicación se detengan de forma permanente. Por ejemplo, si recibes un
VEHICLE_NOT_FOUND
, indica un error de configuración.
En el siguiente ejemplo, se muestra una implementación de 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());
Cómo habilitar las actualizaciones de ubicación
Una vez que tengas una instancia de *VehicleReporter
, habilita las actualizaciones de ubicación de la siguiente manera:
Java
DeliveryVehicleReporter reporter = ...;
reporter.enableLocationTracking();
Kotlin
val reporter = ...
reporter.enableLocationTracking()
Cómo establecer el intervalo de actualización (opcional)
De forma predeterminada, el SDK de Driver envía actualizaciones de ubicación en intervalos de 10 segundos. Cada
la actualización de la ubicación también indica que el vehículo está en línea. Puedes cambiar esto
intervalo con
reporter.setLocationReportingInterval(long, TimeUnit)
El intervalo de actualización mínimo que se admite es de 5 segundos. Las actualizaciones más frecuentes pueden generar solicitudes y errores más lentos.