La version 3.0 du SDK Driver pour Android nécessite que vous modifiiez votre code pour certaines opérations. Ce guide décrit les modifications et ce que vous devez faire pour migrer votre code.
Modification du nom du 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 précédentes, vous deviez initialiser le SDK Navigation, puis obtenir une référence à la classe FleetEngine
. Dans le SDK Driver v3, procédez comme suit pour initialiser le SDK:
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
DriverContext
en remplissant les champs obligatoires.DriverContext driverContext = DriverContext.builder(application) .setProviderId(providerId) .setVehicleId(vehicleId) .setAuthTokenFactory(authTokenFactory) .setNavigator(navigator) .setRoadSnappedLocationProvider( NavigationApi.getRoadSnappedLocationProvider(application)) .build()
Utilisez l'objet
DriverContext
pour initialiser*DriverApi
.Obtenez le
NavigationVehicleReporter
à partir de l'objet API.*VehicleReporter
étendNavigationVehicleReporter
.
Activer et désactiver les mises à jour de la position
Dans les versions précédentes, vous deviez activer les notifications de position après avoir obtenu une référence FleetEngine
. Dans le SDK Driver v3, activez les mises à jour de position comme suit:
Pour mettre à jour l'intervalle de création de rapports, utilisez RidesharingVehicleReporter.setLocationReportingInterval(long, TimeUnit)
ou DeliveryVehicleReporter.setLocationReportingInterval(long, TimeUnit)
.
Lorsque le conducteur a terminé son service, désactivez les mises à jour de 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.
}
}