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:
Recupera l'istanza ConsumerApi
Per utilizzare l'SDK Consumer, l'app deve inizializzare il singleton
ConsumerApi in modo asincrono. Il metodo di inizializzazione utilizza la classe AuthTokenFactory per generare nuovi token JWT per l'utente, se necessario.
providerId è l'ID progetto del tuo progetto Google Cloud. Per saperne di più sulla creazione di un progetto Fleet Engine, consulta Crea il tuo 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 di mappe
L'SDK Consumer v2.0.0 e versioni successive supporta Maps SDK for Android v18.1.0 e versioni successive. La tabella seguente riepiloga il renderer predefinito in base alla versione di Maps SDK
e la supportabilità di entrambi i renderer. Se possibile, utilizza il renderer più recente.
Se devi utilizzare il renderer precedente, specificalo esplicitamente utilizzando MapsInitializer.initialize().
| Versione Maps SDK | Supporta il renderer più recente | Supporta il renderer precedente | Renderer predefinito |
|---|---|---|---|
| V18.1.0 e versioni precedenti | Sì | Sì | Legacy* |
| V18.2.0 | Sì | Sì | 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 della UI dopo che OnMapsSdkInitializedCallback restituisce un risultato. Le operazioni di rendering della UI includono le seguenti operazioni:
Inflating di una visualizzazione che contiene
GoogleMapViewoConsumerMapView.Posizionamento degli indicatori su
ConsumerMapView.
Se non esegui queste operazioni dopo aver ricevuto il risultato OnMapsSdkInitializedCallback, Maps SDK non alloca il renderer preferito e la visualizzazione mappa viene visualizzata dal renderer predefinito.
Inizializza Maps SDK prima di inizializzare l'SDK Consumer
Nella classe
Applicationo di avvioActivity, chiama MapsInitializer.initialize()Attendi il risultato della richiesta del renderer prima di inizializzare l'SDK Consumer.
Per maggiori dettagli, 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 dell'API Android 23 o precedenti potrebbero richiedere una patch SecurityProvider per comunicare con il server. Per saperne di più sull'utilizzo di SSL in Android, consulta Provider GMS di sicurezza.
L'articolo contiene anche esempi di codice per applicare patch al provider di sicurezza.