Inizializzare l'SDK consumer

Prima di iniziare queste procedure, assicurati di aver attivato le app e l'SDK consumer come descritto nelle sezioni precedenti.

Per inizializzare l'SDK consumer, segui questi passaggi:

  1. Recupera l'istanza ConsumerAPI
  2. Inizializza Maps SDK per richiedere un renderer preferito

Recupera l'istanza ConsumerApi

Per utilizzare l'SDK consumer, la tua app deve inizializzare il singleton ConsumerApi in modo asincrono. Il metodo di inizializzazione prende le AuthTokenFactory per generare nuovi token JWT per l'utente quando necessario.

providerId è l'ID progetto del tuo progetto Google Cloud. Per maggiori informazioni informazioni sulla creazione di un progetto Fleet Engine, Crea il tuo progetto Fleet Engine nella guida di Fleet Engine.

La tua app deve implementare AuthTokenFactory come descritto in SDK consumer Autenticazione.

Java

Task<ConsumerApi> consumerApiTask = ConsumerApi.initialize(
    this, "myProviderId", authTokenFactory);

consumerApiTask.addOnSuccessListener(
  consumerApi -> this.consumerApi = consumerApi);

Kotlin

val consumerApiTask =
  ConsumerApi.initialize(this, "myProviderId", authTokenFactory)

consumerApiTask?.addOnSuccessListener { consumerApi: ConsumerApi ->
  this@YourActivity.consumerApi = consumerApi
}

SDK Maps e visualizzatori delle mappe

Consumer SDK v2.0.0 e versioni successive supportano l'SDK Maps per Android v18.1.0 e in un secondo momento. La tabella seguente riassume il visualizzatore predefinito in base alla versione dell'SDK Maps e la supportabilità di entrambi i visualizzatori. Se possibile, utilizza il renderer più recente. Se devi utilizzare il visualizzatore precedente, specificalo esplicitamente utilizzando MapsInitializer.initialize().

Versione SDK Maps Supporta il renderer più recente Supporta il renderer precedente Renderer predefinito
V18.1.0 e precedenti Precedente*
V18.2.0 Più recenti

* Con il lancio del nuovo renderer di Maps, il renderer più recente sarà predefinito.

Se devi utilizzare un renderer preferito, esegui tutte le operazioni di rendering dell'interfaccia utente dopo OnMapsSdkInitializedCallback restituisce un risultato. Le operazioni di rendering dell'interfaccia utente includono le seguenti operazioni:

  • Espansione di una visualizzazione contenente GoogleMapView o ConsumerMapView.

  • Posizionamento di indicatori su ConsumerMapView.

Se non esegui queste operazioni dopo aver ricevuto il OnMapsSdkInitializedCallback risultato, Maps SDK non alloca il tuo il renderer preferito e il rendering della visualizzazione mappa viene invece eseguito dal renderer predefinito.

Inizializza Maps SDK prima di inizializzare l'SDK consumer

  1. Nel corso del corso Application o della startup Activity, chiama MapsInitializer.initialize()

  2. Attendi il risultato della richiesta del renderer prima di inizializzare l'SDK consumer.

Per informazioni dettagliate, consulta gli esempi riportati di seguito.

Java

@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  initViews();

  MapsInitializer.initialize(getApplicationContext(), Renderer.LATEST,
      new OnMapsSdkInitializedCallback() {
        @Override
        public void onMapsSdkInitialized(Renderer renderer) {
          switch (renderer) {
            case LATEST:
              Log.i("maps_renderer", "LATEST renderer");
              break;
            case LEGACY:
              Log.i("maps_renderer", "LEGACY renderer");
              break;
          }

          initializeConsumerSdk();
        }
      });
}

Kotlin

fun onCreate(savedInstanceState: Bundle?) {
  super.onCreate(savedInstanceState)
  setContentView(R.layout.main)
  initViews()

  MapsInitializer.initialize(
    getApplicationContext(), Renderer.LATEST,
    object : OnMapsSdkInitializedCallback() {
      fun onMapsSdkInitialized(renderer: Renderer?) {
        when (renderer) {
          LATEST -> Log.i("maps_renderer", "LATEST renderer")
          LEGACY -> Log.i("maps_renderer", "LEGACY renderer")
        }
        initializeConsumerSdk()
      }
    })
  }

Note su SSL/TLS

Internamente, l'implementazione dell'SDK consumer utilizza SSL/TLS per comunicare in modo sicuro con il servizio Fleet Engine. Le versioni API Android 23 o precedenti potrebbero richiedere un Patch SecurityProvider per comunicare con il server. Per ulteriori informazioni sull'utilizzo di SSL in Android, vedi Security GMS Fornitore. L'articolo contiene anche esempi di codice per l'applicazione di patch al provider di sicurezza.

Passaggi successivi

Configurare una mappa