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:
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 | 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 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
oConsumerMapView
.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
Nella classe
Application
o di avvioActivity
, chiama MapsInitializer.initialize()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.