Inizializzare l'SDK consumer

Prima di iniziare queste procedure, assicurati di aver attivato i servizi e l'SDK Consumer appropriati, come descritto nelle sezioni precedenti.

Per inizializzare il Consumer SDK:

  1. Ottieni l'istanza ConsumerAPI
  2. Inizializza Maps SDK per richiedere il renderer preferito

Recupera l'istanza ConsumerApi

Per utilizzare l'SDK per i consumatori, la tua app deve inizializzare il singleton ConsumerApi in modo asincrono. Il metodo di inizializzazione accetta la classe AuthTokenFactory per generare nuovi token JWT per l'utente, se necessario.

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

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

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 renderer di mappe

L'SDK Consumer versione 2.0.0 e successive supportano Maps SDK for Android versione 18.1.0 e successive. La tabella seguente riepiloga il renderer predefinito in base alla versione di Maps SDK e la compatibilità di entrambi i renderer. Se possibile, utilizza il renderer più recente. Se devi utilizzare il renderer precedente, specificarlo in modo esplicito utilizzando MapsInitializer.initialize().

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

* Con l'implementazione del nuovo renderer di Maps, il renderer più recente sarà quello predefinito.

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

  • Gonfiare una visualizzazione che contiene GoogleMapView o ConsumerMapView.

  • Posizionamento dei marcatori su ConsumerMapView.

Se non esegui queste operazioni dopo aver ricevuto il risultato OnMapsSdkInitializedCallback, l'SDK Maps non alloca il renderer preferito e la visualizzazione della mappa viene invece eseguita dal renderer predefinito.

Inizializza Maps SDK prima di inizializzare Consumer SDK

  1. Nella classe Application o di avvio Activity, chiama MapsInitializer.initialize()

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

Per maggiori dettagli, vedi 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

A livello interno, l'implementazione dell'SDK consumer utilizza SSL/TLS per comunicare in sicurezza con il servizio Fleet Engine. Le versioni dell'API Android 23 o precedenti potrebbero richiedere una patch SecurityProvider per comunicare con il server. Per ulteriori informazioni sull'utilizzo di SSL in Android, consulta Security GMS Provider. L'articolo contiene anche esempi di codice per l'applicazione di patch al fornitore di sicurezza.

Passaggi successivi

Configurare una mappa