Prepara el vehículo

En esta sección, se muestra cómo preparar el vehículo para las tareas programadas. Debes completar cada uno de los siguientes pasos para que tu backend pueda vincular un vehículo a una tarea.

Configura el objeto de escucha

Dado que el SDK de Driver realiza acciones en segundo plano, usa DriverStatusListener para activar notificaciones cuando ocurran ciertos eventos, 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 error VEHICLE_NOT_FOUND, significa 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()

Establece el intervalo de actualización (opcional)

De forma predeterminada, el SDK del controlador envía actualizaciones de la ubicación en intervalos de 10 segundos. Cada actualización de ubicación también indica que el vehículo está en línea. Puedes cambiar este intervalo con reporter.setLocationReportingInterval(long, TimeUnit). El intervalo de actualización mínimo compatible es de 5 segundos. Las actualizaciones más frecuentes pueden hacer que las solicitudes y los errores sean más lentos.