Bevor Sie mit diesen Schritten 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 du das Consumer SDK verwenden kannst, muss deine App das Singleton ConsumerApi
asynchron initialisieren. Die Initialisierungsmethode verwendet die AuthTokenFactory
-Klasse, um bei Bedarf neue JWT-Tokens für den Nutzer zu generieren.
providerId
ist die Projekt-ID Ihres Google Cloud-Projekts. Weitere Informationen
Informationen zum Erstellen eines Fleet Engine-Projekts finden Sie unter
Erstellen Sie Ihr Fleet Engine-Projekt im Fleet Engine-Leitfaden.
Ihre App sollte die AuthTokenFactory
wie unter Authentifizierung im 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
. In der folgenden Tabelle wird der Standard-Renderer nach Maps SDK-Version zusammengefasst
und die Unterstützung beider Renderer. Verwenden Sie nach Möglichkeit den neuesten Renderer.
Wenn Sie den alten Renderer verwenden müssen, geben Sie ihn explizit mit
MapsInitializer.initialize()
Maps SDK-Version | Unterstützt den neuesten Renderer | Unterstützt 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 Maps Renderer Standardeinstellung.
Wenn Sie einen bevorzugten Renderer verwenden müssen, führen Sie alle UI-Rendering-Vorgänge nach dem Zurückgeben eines Ergebnisses durch OnMapsSdkInitializedCallback
aus. UI-Rendering
Vorgänge umfassen die folgenden Vorgänge:
Maximieren einer Ansicht, die
GoogleMapView
oderConsumerMapView
enthältMarkierungen werden auf
ConsumerMapView
platziert.
Wenn Sie diese Vorgänge nach Erhalt der
OnMapsSdkInitializedCallback
Ergebnis bedeutet, dass das Maps SDK deine
bevorzugten Renderer und die Kartenansicht wird stattdessen vom Standard-Renderer gerendert.
Initialisieren Sie das Maps SDK, bevor Sie das Consumer SDK initialisieren
Rufen Sie in Ihrem
Application
- oder Start-up-KursActivity
MapsInitializer.initialize()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
Die Consumer SDK-Implementierung verwendet intern SSL/TLS für eine sichere Kommunikation.
mit dem Fleet Engine-Dienst. Für die Android API Version 23 oder niedriger ist möglicherweise ein
SecurityProvider
-Patch für die Kommunikation mit dem Server. Weitere Informationen
zur Arbeit mit SSL unter Android siehe Sicherheit GMS
Anbieter.
Der Artikel enthält auch Codebeispiele zum Patchen des Sicherheitsanbieters.