Bevor Sie mit diesen Verfahren beginnen, müssen Sie die entsprechenden Dienste und das Consumer SDK wie in den vorherigen Abschnitten beschrieben aktivieren.
So initialisieren Sie das Consumer SDK:
ConsumerApi-Instanz abrufen
Damit Sie das Consumer SDK verwenden können, muss in Ihrer App das Singleton ConsumerApi asynchron initialisiert werden. Die Initialisierungsmethode verwendet die Klasse AuthTokenFactory, um bei Bedarf neue JWT-Tokens für den Nutzer zu generieren.
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 Authentifizierung mit dem Consumer SDK 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 Karten-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 ist der Standard-Renderer nach Maps SDK-Version zusammengefasst. Außerdem wird die Unterstützung beider Renderer angegeben. Verwenden Sie nach Möglichkeit den neuesten Renderer.
Wenn Sie den alten Renderer verwenden müssen, geben Sie ihn explizit mit MapsInitializer.initialize() an.
| Maps SDK-Version | Unterstützt den neuesten Renderer | Unterstützung für den alten Renderer | Standard-Renderer |
|---|---|---|---|
| V18.1.0 und niedriger | Ja | Ja | Legacy* |
| V18.2.0 | Ja | Ja | Neueste |
* Mit der Einführung des neuen Karten-Renderers wird der neueste Renderer zum Standard.
Wenn Sie einen bevorzugten Renderer verwenden müssen, führen Sie alle UI-Rendering-Vorgänge nach der Rückgabe eines Ergebnisses durch OnMapsSdkInitializedCallback aus. Zu den Vorgängen für das Rendern der Benutzeroberfläche gehören die folgenden Vorgänge:
Eine Ansicht wird aufgeblasen, die
GoogleMapViewoderConsumerMapViewenthält.Markierungen auf
ConsumerMapViewsetzen
Wenn Sie diese Vorgänge nicht ausführen, nachdem Sie das Ergebnis OnMapsSdkInitializedCallback erhalten haben, wird der bevorzugte Renderer nicht zugewiesen und die Kartenansicht wird stattdessen mit dem Standardrenderer gerendert.
Maps SDK vor dem Consumer SDK initialisieren
Rufen Sie in Ihrer
Application- oder Start-up-KlasseActivityMapsInitializer.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 für die sichere Kommunikation mit dem Fleet Engine-Dienst. Für Android-API-Versionen 23 oder niedriger ist möglicherweise ein SecurityProvider-Patch für die Kommunikation mit dem Server erforderlich. Weitere Informationen zur Verwendung von SSL in Android finden Sie unter Security GMS Provider.
Der Artikel enthält auch Codebeispiele zum Patchen des Sicherheitsanbieters.