Guida alla migrazione dell'SDK Android Driver 3.0

La release 3.0 dell'SDK Driver per Android richiede l'aggiornamento del codice per determinate operazioni. Questa guida descrive le modifiche e cosa dovrai fare per eseguire la migrazione del codice.

Modifica del nome del pacchetto

Il nome del pacchetto è cambiato da com.google.android.libraries.ridesharing.driver a com.google.android.libraries.mapsplatform.transportation.driver. Aggiorna i riferimenti nel codice.

Inizializzazione dell'SDK

Nelle versioni precedenti, inizializzavi l'SDK Navigation e poi ottenevi un riferimento alla classe FleetEngine. Nell'SDK Driver v3, inizializza l'SDK nel seguente modo:

  1. Ottieni un oggetto Navigator da 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. Crea un oggetto DriverContext, compilando i campi obbligatori.

    DriverContext driverContext = DriverContext.builder(application)
                 .setProviderId(providerId)
                 .setVehicleId(vehicleId)
                 .setAuthTokenFactory(authTokenFactory)
                 .setNavigator(navigator)
                 .setRoadSnappedLocationProvider(
                     NavigationApi.getRoadSnappedLocationProvider(application))
                 .build()
    
  3. Utilizza l'oggetto DriverContext per inizializzare *DriverApi.

  4. Ottieni NavigationVehicleReporter dall'oggetto API. *VehicleReporter si estende fino a NavigationVehicleReporter.

Attivare e disattivare gli aggiornamenti sulla posizione

Nelle versioni precedenti, gli aggiornamenti della posizione venivano attivati dopo aver ottenuto un riferimento FleetEngine. Nell'SDK Driver v3, attiva gli aggiornamenti della posizione nel seguente modo:

Per aggiornare l'intervallo di generazione dei report, utilizza RidesharingVehicleReporter.setLocationReportingInterval(long, TimeUnit) o DeliveryVehicleReporter.setLocationReportingInterval(long, TimeUnit).

Al termine del turno dell'autista, disattiva gli aggiornamenti della posizione e contrassegna il veicolo come offline chiamando il numero NavigationVehicleReporter.disableLocationTracking().

Error Reporting con StatusListener

ErrorListener è stato rimosso e combinato con StatusListener, che può essere definito come segue:

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