Bevor Sie mit diesen Schritten beginnen, müssen Sie die entsprechenden Dienste und das Consumer SDK wie in den vorherigen Abschnitten beschrieben aktivieren.
So initialisierst du das Consumer SDK:
ConsumerApi
-Instanz abrufen
Wenn du das Consumer SDK verwenden möchtest, 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 zum Erstellen eines Fleet Engine-Projekts finden Sie im Leitfaden für Fleet Engine unter Fleet Engine-Projekt erstellen.
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 2.0.0 und höher unterstützt das Maps SDK for Android 18.1.0 und höher. In der folgenden Tabelle sind der Standard-Renderer 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 | Standard-Renderer |
---|---|---|---|
Version 18.1.0 und niedriger | Ja | Ja | Legacy* |
V18.2.0 | Ja | Ja | Neueste |
* Nach der Einführung des neuen Maps-Renderers ist der neueste Renderer standardmäßig aktiv.
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. Zu den UI-Rendering-Vorgängen gehören:
Eine Ansicht mit
GoogleMapView
oderConsumerMapView
maximierenMarkierungen auf
ConsumerMapView
platzieren
Wenn Sie diese Vorgänge nicht ausführen, nachdem Sie das OnMapsSdkInitializedCallback
-Ergebnis erhalten haben, wird der bevorzugte Renderer nicht vom Maps SDK zugewiesen und die Kartenansicht wird stattdessen vom Standard-Renderer gerendert.
Maps SDK vor dem Consumer SDK initialisieren
Rufen Sie in Ihrer
Application
- oder Start-Activity
-Klasse MapsInitializer.initialize() auf.Warten Sie auf das Ergebnis der Rendereranfrage, 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 unter Android finden Sie unter Sicherheits-GMS-Anbieter.
Der Artikel enthält auch Codebeispiele zum Patchen des Sicherheitsanbieters.