La version 3.0 du Driver SDK pour Android vous oblige à mettre à jour votre code pour certaines opérations. Ce guide décrit les modifications et ce que vous devez faire pour migrer votre code.
Changement de nom de package
Le nom du package est passé de
com.google.android.libraries.ridesharing.driver à
com.google.android.libraries.mapsplatform.transportation.driver. Veuillez mettre à jour les références dans votre code.
Initialiser le SDK
Dans les versions antérieures, vous initialisiez le SDK Navigation, puis vous obteniez une référence à la classe FleetEngine. Dans le Driver SDK v3, initialisez le SDK comme suit :
Obtenez un objet
Navigatorà partir deNavigationApi.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; } } );Créez un objet
DriverContexten renseignant les champs obligatoires.DriverContext driverContext = DriverContext.builder(application) .setProviderId(providerId) .setVehicleId(vehicleId) .setAuthTokenFactory(authTokenFactory) .setNavigator(navigator) .setRoadSnappedLocationProvider( NavigationApi.getRoadSnappedLocationProvider(application)) .build()Utilisez l'objet
DriverContextpour initialiser*DriverApi.Obtenez
NavigationVehicleReporterà partir de l'objet API.*VehicleReporterétendNavigationVehicleReporter.
Activer et désactiver les mises à jour de la position
Dans les versions antérieures, vous activiez les mises à jour de la position après avoir obtenu une référence FleetEngine. Dans le Driver SDK v3, activez les mises à jour de localisation comme suit :
Pour mettre à jour l'intervalle de reporting, utilisez RidesharingVehicleReporter.setLocationReportingInterval(long, TimeUnit) ou DeliveryVehicleReporter.setLocationReportingInterval(long, TimeUnit).
Une fois le service du chauffeur terminé, désactivez les mises à jour de la position et marquez le véhicule comme hors connexion en appelant NavigationVehicleReporter.disableLocationTracking().
Error Reporting avec StatusListener
ErrorListener a été supprimé et combiné à StatusListener, qui peut être défini comme suit :
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.
}
}