Guide de migration du SDK Driver 3.0

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 :

  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 renseignant 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 NavigationVehicleReporter à partir de l'objet API. *VehicleReporter étend NavigationVehicleReporter.

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