Prepara el vehículo

En esta sección, se muestra cómo preparar el vehículo para los viajes. Debes completar cada uno de los siguientes pasos para que tu backend pueda asignar un vehículo a un viaje.

Configura el objeto de escucha

Dado que el SDK de Driver realiza acciones en segundo plano, usa DriverStatusListener para activar notificaciones cuando ocurren ciertos eventos, como errores, advertencias o mensajes de depuración. Los errores pueden ser transitorios (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, 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

Después de configurar el objeto de escucha, habilita las actualizaciones de ubicación de la siguiente manera:

Java

RidesharingVehicleReporter reporter = ...;

reporter.enableLocationTracking();

Kotlin

val reporter = ...

reporter.enableLocationTracking()

Cómo establecer el intervalo de actualización

De forma predeterminada, el SDK de Driver envía actualizaciones de ubicación cada 10 segundos cuando el estado del vehículo es ONLINE. Puedes cambiar este intervalo con reporter.setLocationReportingInterval(long, TimeUnit). El intervalo de actualización mínimo admitido es de 5 segundos. Las actualizaciones más frecuentes pueden generar solicitudes más lentas y errores.

Cómo establecer el estado del vehículo como en línea

Cuando activas las actualizaciones de ubicación, puedes establecer el estado del vehículo en ONLINE para que esté disponible para las búsquedas de SearchVehicles en Fleet Engine. El SDK de Driver envía el estado actualizado del vehículo junto con las actualizaciones de ubicación.

Puedes establecer el estado del vehículo directamente en el SDK de Driver o en el servidor de Fleet Engine. Para obtener más información, consulta Actualiza un vehículo.

En los siguientes ejemplos, se muestra cómo establecer el estado del vehículo como en línea en el SDK de Driver:

Java

RidesharingVehicleReporter reporter = ...;

reporter.enableLocationTracking();
reporter.setVehicleState(VehicleState.ONLINE);

Kotlin

val reporter = ...

reporter.enableLocationTracking()
reporter.setVehicleState(VehicleState.ONLINE)

El objeto StatusListener también informa los errores que se producen cuando se actualiza el estado del vehículo.

¿Qué sigue?

Configura los detalles del viaje