El lanzamiento de la versión 3.0 del SDK de Driver para Android requiere que actualices tu código para ciertas operaciones. En esta guía, se describen los cambios y lo que deberás hacer para migrar tu código.
Cambio de nombre de paquete
El nombre del paquete cambió de
com.google.android.libraries.ridesharing.driver a
com.google.android.libraries.mapsplatform.transportation.driver. Actualiza las referencias en tu código.
Inicializa el SDK
En versiones anteriores, inicializabas el SDK de Navigation y, luego, obtenías una referencia a la clase FleetEngine. En la versión 3 del SDK de Driver, inicializa el SDK de la siguiente manera:
Obtén un objeto
NavigatordelNavigationApi.NavigationApi.getNavigator( this, // Activity new NavigationApi.NavigatorListener() { @Override public void onNavigatorReady(Navigator navigator) { // Keep a reference to the Navigator (used to configure and start nav) this.navigator = navigator; } } );Crea un objeto
DriverContexty completa los campos obligatorios.DriverContext driverContext = DriverContext.builder(application) .setProviderId(providerId) .setVehicleId(vehicleId) .setAuthTokenFactory(authTokenFactory) .setNavigator(navigator) .setRoadSnappedLocationProvider( NavigationApi.getRoadSnappedLocationProvider(application)) .build()Usa el objeto
DriverContextpara inicializar el*DriverApi.Obtén el objeto
NavigationVehicleReporterdel objeto de la API.*VehicleReporterextiendeNavigationVehicleReporter.
Cómo habilitar y deshabilitar las actualizaciones de ubicación
En versiones anteriores, habilitabas las actualizaciones de ubicación después de obtener una referencia de FleetEngine. En el SDK de Driver v3, habilita las actualizaciones de ubicación de la siguiente manera:
Para actualizar el intervalo del informe, usa RidesharingVehicleReporter.setLocationReportingInterval(long, TimeUnit) o DeliveryVehicleReporter.setLocationReportingInterval(long, TimeUnit).
Cuando finalice el turno del conductor, inhabilita las actualizaciones de ubicación y marca el vehículo como sin conexión llamando a NavigationVehicleReporter.disableLocationTracking().
Error Reporting con StatusListener
Se quitó ErrorListener y se combinó con StatusListener, que se puede definir de la siguiente manera:
class MyStatusListener implements StatusListener {
/** Called when background status is updated, during actions such as location reporting. */
@Override
public void updateStatus(
StatusLevel statusLevel,
StatusCode statusCode,
String statusMsg) {
// Status handling stuff goes here.
// StatusLevel may be DEBUG, INFO, WARNING, or ERROR.
// StatusCode may be DEFAULT, UNKNOWN_ERROR, VEHICLE_NOT_FOUND,
// BACKEND_CONNECTIVITY_ERROR, or PERMISSION_DENIED.
}
}