En esta sección, se muestra cómo preparar el vehículo para los viajes. Debes completar cada uno de los siguientes pasos antes de que tu backend pueda hacer coincidir un vehículo con un viaje.
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
transitorios por naturaleza (como BACKEND_CONNECTIVITY_ERROR
) o podrían
hacen que las actualizaciones de ubicación
se detengan de forma permanente. Por ejemplo, si recibes un error VEHICLE_NOT_FOUND
, significa que se produjo 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()
Establece el intervalo de actualización
De forma predeterminada, el SDK del controlador envía actualizaciones de la ubicación en intervalos de 10 segundos
cuando el estado del vehículo es ONLINE
. Puedes cambiar este intervalo con reporter.setLocationReportingInterval(long, TimeUnit)
. El mínimo admitido
el intervalo de actualización es de 5 segundos. Las actualizaciones más frecuentes pueden generar solicitudes y errores más lentos.
Establece el estado del vehículo en En línea
Cuando activas las actualizaciones de ubicación, puedes establecer el estado del vehículo en ONLINE
para
hacer que el vehículo esté disponible para consultas SearchVehicles
en Fleet Engine. El
SDK de Driver envía el estado actualizado del vehículo junto con las actualizaciones de ubicación.
Puedes configurar 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 Cómo actualizar 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 StatusListener
también informa sobre los errores que se producen cuando se actualiza el
estado del vehículo.