Guide de migration du SDK Driver 3.0

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:

  1. Obtenez un objet Navigator à partir de NavigationApi.

    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;
            }
          }
    );
    
  2. 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()
    
  3. Utilisez l'objet DriverContext pour initialiser *DriverApi.

  4. Obtenez le NavigationVehicleReporter à partir de l'objet API. *VehicleReporter étend NavigationVehicleReporter.

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.
  }
}