Bevor Sie mit diesen Schritten beginnen, müssen Sie die entsprechenden Dienste und das Consumer SDK wie in den vorherigen Abschnitten beschrieben aktiviert haben.
So initialisieren Sie das Consumer SDK:
ConsumerApi-Instanz abrufen
Damit Ihre App das Consumer SDK verwenden kann, muss sie das Singleton ConsumerApi asynchron initialisieren. Die Initialisierungsmethode verwendet die Klasse AuthTokenFactory, um bei Bedarf neue JWT-Tokens für den Nutzer zu generieren.
Die providerId ist die Projekt-ID Ihres Google Cloud-Projekts. Weitere
Informationen zum Erstellen eines Fleet Engine-Projekts finden Sie
im Fleet Engine-Leitfaden unter Fleet Engine-Projekt erstellen.
Ihre App sollte die AuthTokenFactory wie unter Consumer SDK
Authentifizierung beschrieben implementieren.
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 und Maps-Renderer
Das Consumer SDK v2.0.0 und höher unterstützt das Maps SDK for Android v18.1.0 und höher. In der folgenden Tabelle sind der Standardrenderer nach Maps SDK-Version und die Unterstützung beider Renderer zusammengefasst. Verwenden Sie nach Möglichkeit den neuesten Renderer.
Wenn Sie den alten Renderer verwenden müssen, geben Sie ihn mit
MapsInitializer.initialize() explizit an.
| Maps SDK-Version | Unterstützt den neuesten Renderer | Unterstützt den alten Renderer | Standardrenderer |
|---|---|---|---|
| V18.1.0 und niedriger | Ja | Ja | Legacy* |
| V18.2.0 | Ja | Ja | Neueste |
* Mit der Einführung des neuen Maps-Renderers wird der neueste Renderer zum Standard.
Wenn Sie einen bevorzugten Renderer verwenden müssen, führen Sie alle UI-Rendering-Vorgänge nachdem OnMapsSdkInitializedCallback ein Ergebnis zurückgegeben hat aus. UI-Rendering-Vorgänge umfassen die folgenden Vorgänge:
Eine Ansicht mit
GoogleMapViewoderConsumerMapViewerweitern.Markierungen auf
ConsumerMapViewplatzieren.
Wenn Sie diese Vorgänge nicht ausführen, nachdem Sie das OnMapsSdkInitializedCallback-Ergebnis erhalten haben, weist das Maps SDK Ihren bevorzugten Renderer nicht zu und die Kartenansicht wird stattdessen mit dem Standardrenderer gerendert.
Maps SDK vor dem Consumer SDK initialisieren
Rufen Sie in Ihrer
Applicationoder Start-up-Activity-Klasse MapsInitializer.initialize() auf.Warten Sie auf das Ergebnis der Renderer-Anfrage, bevor Sie das Consumer SDK initialisieren.
Weitere Informationen finden Sie in den folgenden Beispielen.
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()
}
})
}
Hinweise zu SSL/TLS
Intern verwendet die Consumer SDK-Implementierung SSL/TLS, um sicher mit dem Fleet Engine-Dienst zu kommunizieren. Für Android API-Versionen 23 oder niedriger ist möglicherweise ein SecurityProvider-Patch erforderlich, um mit dem Server zu kommunizieren. Weitere Informationen
zur Verwendung von SSL in Android finden Sie unter Security GMS
Provider.
Der Artikel enthält auch Codebeispiele zum Patchen des Sicherheitsproviders.