Consumer SDK initialisieren

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:

  1. ConsumerAPI-Instanz abrufen
  2. Maps SDK initialisieren, um den bevorzugten Renderer anzufordern

ConsumerApi-Instanz abrufen

Wenn Sie das Consumer SDK verwenden möchten, muss Ihre App das Singleton ConsumerApi asynchron initialisieren. 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 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
V18.1.0 und niedriger Ja Ja Alt*
V18.2.0 Ja Ja Neueste

* Seit der Einführung des neuen Maps Renderer ist der neueste Renderer der Standard.

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. Das UI-Rendering umfasst die folgenden Vorgänge:

  • Maximieren einer Ansicht, die GoogleMapView oder ConsumerMapView enthält

  • Markierungen werden auf ConsumerMapView platziert.

Wenn Sie diese Vorgänge nach Erhalt des Ergebnisses OnMapsSdkInitializedCallback nicht ausführen, weist das Maps SDK den bevorzugten Renderer nicht zu und die Kartenansicht wird stattdessen vom Standard-Renderer gerendert.

Maps SDK vor dem Consumer SDK initialisieren

  1. Rufen Sie in der Application- oder Start-Activity-Klasse MapsInitializer.initialize() auf.

  2. 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-Version 23 oder älter ist möglicherweise ein SecurityProvider-Patch für die Kommunikation mit dem Server erforderlich. Weitere Informationen zur Verwendung von SSL unter Android finden Sie unter Sicherheits-GMS-Anbieter. Der Artikel enthält auch Codebeispiele zum Patchen des Sicherheitsanbieters.

Nächste Schritte

Karte einrichten