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
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 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.
Version des Maps SDK | 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 Karten-Renderers ist der neueste Renderer standardmäßig aktiviert.
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 aufblähen, die
GoogleMapView
oderConsumerMapView
enthältMarkierungen 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.Warte auf das Ergebnis der Rendereranfrage, bevor du das Consumer SDK initialisierst.
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 Arbeit mit SSL unter Android finden Sie unter Security GMS Provider.
Der Artikel enthält auch Codebeispiele zum Patchen des Sicherheitsanbieters.