Inicjowanie pakietu SDK klienta

Przed rozpoczęciem tych procedur sprawdź, czy masz włączone odpowiednie usługi i pakiet SDK Consumer SDK zgodnie z opisem we wcześniejszych sekcjach.

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

  1. Pobierz instancję ConsumerAPI
  2. Inicjowanie pakietu SDK Maps w celu wysłania żądania dotyczącego preferowanego renderera

Pobieranie instancji ConsumerApi

Aby korzystać z pakietu Consumer SDK, aplikacja musi asynchronicznie zainicjować singletonaConsumerApi. Metoda inicjalizacji wywołuje klasę AuthTokenFactory, aby w razie potrzeby wygenerować nowe tokeny JWT dla użytkownika.

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

Aplikacja powinna implementować AuthTokenFactory zgodnie z opisem w Consumer SDK: uwierzytelnianie.

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
}

Pakiety SDK Map Google i renderowanie 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. Tabela poniżej zawiera informacje o domyślnym mechanizmie renderowania według wersji pakietu SDK Map Google oraz obsługi obu mechanizmów. Jeśli to możliwe, użyj najnowszego modułu renderującego. Jeśli musisz użyć starszej wersji mechanizmu renderowania, wyraźnie wskaż ją za pomocą metody MapsInitializer.initialize().

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

* Wraz z wdrożeniem nowego modułu renderowania Map najnowszy moduł renderowania będzie domyślny.

Jeśli musisz użyć preferowanego mechanizmu renderowania, uruchom wszystkie operacje renderowania UI po zwróceniu wyniku przez OnMapsSdkInitializedCallback. Operacje związane z renderowaniem interfejsu obejmują:

  • Powiększanie widoku danych, który zawiera GoogleMapView lub ConsumerMapView.

  • Ustawiam znaczniki na: ConsumerMapView.

Jeśli nie wykonasz tych operacji po otrzymaniu wyniku OnMapsSdkInitializedCallback, pakiet Maps SDK nie przydzieli preferowanego mechanizmu renderowania, a widok mapy będzie renderowany przez domyślny mechanizm renderowania.

Przed zainicjowaniem pakietu SDK dla klientów indywidualnych zainicjuj pakiet Maps SDK

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

  2. Przed zainicjowaniem pakietu Consumer SDK zaczekaj na wynik żądania dotyczącego renderowania.

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

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 na temat protokołu SSL/TLS

Wewnętrzna implementacja pakietu konsumenckiego SDK korzysta z protokołu SSL/TLS, aby bezpiecznie komunikować się z usługą Fleet Engine. Komunikacja z serwerem w przypadku wersji interfejsu API Androida 23 lub starszych może wymagać SecurityProvider. Więcej informacji o pracy z protokołem SSL na Androidzie znajdziesz w artykule Security GMS Provider (Dostawca zabezpieczeń GMS). Artykuł zawiera też przykłady kodu do łatania dostawcy zabezpieczeń.

Co dalej?

Konfigurowanie mapy