Inicjowanie pakietu SDK klienta

Zanim rozpoczniesz te procedury, upewnij się, że masz włączone odpowiednie usługi i pakiet SDK klienta, jak opisano we wcześniejszych sekcjach.

Aby zainicjować pakiet Consumer SDK, wykonaj te czynności:

  1. Pobieranie instancji ConsumerAPI
  2. Inicjowanie pakietu Maps SDK w celu wysłania żądania preferowanego mechanizmu renderowania

Pobieranie instancji ConsumerApi

Aby korzystać z Consumer SDK, aplikacja musi asynchronicznie zainicjować obiekt pojedynczy ConsumerApi. Metoda inicjowania wykorzystuje klasę AuthTokenFactory do generowania nowych tokenów JWT dla użytkownika, gdy jest to konieczne.

providerId to identyfikator projektu Twojego projektu w chmurze Google Cloud. Więcej informacji o tworzeniu projektu Fleet Engine znajdziesz w artykule Tworzenie projektu Fleet Engine w przewodniku po Fleet Engine.

Aplikacja powinna implementować AuthTokenFactory zgodnie z opisem w artykule Uwierzytelnianie w pakiecie SDK dla klientów.

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 i renderery map

Pakiet Consumer SDK w wersji 2.0.0 lub nowszej obsługuje pakiet Maps SDK na Androida w wersji 18.1.0 lub nowszej. W tabeli poniżej znajdziesz podsumowanie domyślnego mechanizmu renderowania według wersji pakietu SDK Map i informacje o obsłudze obu mechanizmów renderowania. Jeśli to możliwe, używaj najnowszego mechanizmu renderowania. Jeśli musisz używać starszego mechanizmu renderowania, określ go bezpośrednio za pomocą MapsInitializer.initialize().

Wersja pakietu SDK Map Obsługuje najnowszy mechanizm renderowania Obsługuje starszy mechanizm renderowania Domyślny mechanizm renderowania
V18.1.0 i starsze Tak Tak Starsza wersja*
V18.2.0 Tak Tak Najnowsze

* Po wprowadzeniu nowego mechanizmu renderowania map najnowszy mechanizm renderowania będzie domyślny.

Jeśli musisz użyć preferowanego mechanizmu renderowania, wykonaj wszystkie operacje renderowania interfejsu po zwróceniu wyniku przez OnMapsSdkInitializedCallback. Operacje renderowania interfejsu obejmują:

  • Rozwijanie widoku zawierającego GoogleMapView lub ConsumerMapView.

  • Umieszczam znaczniki na: ConsumerMapView.

Jeśli nie wykonasz tych operacji po otrzymaniu wyniku OnMapsSdkInitializedCallback, pakiet SDK Map nie przydzieli preferowanego mechanizmu renderowania, a widok mapy zostanie wyrenderowany przez domyślny mechanizm renderowania.

Zainicjuj pakiet Maps SDK przed zainicjowaniem pakietu Consumer SDK

  1. W klasie Application lub klasie startowej Activity wywołaj MapsInitializer.initialize().

  2. Przed zainicjowaniem pakietu SDK dla konsumentów poczekaj na wynik żądania mechanizmu renderowania.

Szczegółowe informacje znajdziesz w poniższych przykładach.

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()
      }
    })
  }

Uwagi dotyczące SSL/TLS

Wewnętrznie implementacja pakietu Consumer SDK używa protokołu SSL/TLS do bezpiecznej komunikacji z usługą Fleet Engine. Wersje interfejsu API Androida 23 lub starsze mogą wymagać poprawki SecurityProvider, aby komunikować się z serwerem. Więcej informacji o korzystaniu z protokołu SSL na Androidzie znajdziesz w artykule Dostawca zabezpieczeń GMS. Artykuł zawiera też przykładowe kody do wprowadzania poprawek w dostawcy zabezpieczeń.

Co dalej?

Konfigurowanie mapy