Inizializzare l'SDK consumer

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

Per inizializzare l'SDK Consumer, segui questi passaggi:

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

Ottieni l'istanza ConsumerApi

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

Il 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 dell'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
}

Maps SDK e renderer delle mappe

L'SDK Consumer 2.0.0 e versioni successive supportano Maps SDK for Android 18.1.0 e versioni 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 legacy, specificalo in modo esplicito utilizzando MapsInitializer.initialize().

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

* Con il lancio del nuovo renderer di Maps, il renderer Più recenti sarà quello 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:

  • Gonfiaggio di una visualizzazione che contiene GoogleMapView o ConsumerMapView.

  • Posizionamento dei marker su ConsumerMapView.

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

Inizializza Maps SDK prima di inizializzare l'SDK Consumer

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

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

Per i dettagli, consulta gli esempi seguenti.

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 dell'API Android 23 o precedenti potrebbero richiedere una SecurityProvider patch per comunicare con il server. Per ulteriori informazioni sull'utilizzo di SSL in Android, consulta Provider GMS di sicurezza. L'articolo contiene anche esempi di codice per applicare la patch al provider di sicurezza.

Passaggi successivi

Configurare una mappa