Inicjowanie pakietu SDK klienta

Przed rozpoczęciem tych procedur upewnij się, że są włączone odpowiednie opcje i z pakietu SDK Consumer SDK, jak opisano we wcześniejszych sekcjach.

Aby zainicjować pakiet SDK dla klientów indywidualnych, wykonaj te czynności:

  1. Pobieranie instancji ConsumerAPI
  2. Zainicjuj pakiet SDK Maps, aby poprosić o preferowany mechanizm renderowania

Pobieranie instancji ConsumerApi

Aby korzystać z pakietu Consumer SDK, aplikacja musi asynchronicznie zainicjować singletonaConsumerApi. Metoda inicjowania przyjmuje AuthTokenFactory, aby w razie potrzeby wygenerować nowe tokeny JWT dla użytkownika.

providerId to identyfikator projektu Google Cloud. Więcej informacje o tworzeniu projektu Fleet Engine znajdziesz w sekcji Utwórz projekt Fleet Engine w przewodniku Fleet Engine.

Aplikacja powinna implementować AuthTokenFactory w sposób opisany w pakiecie SDK dla klientów indywidualnych 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
}

Maps SDK i mechanizmy renderowania map

Pakiet Consumer SDK w wersji 2.0.0 i nowszych obsługuje pakiet Maps SDK na Androida w wersji 18.1.0 oraz później. W tabeli poniżej znajdziesz podsumowanie domyślnego mechanizmu renderowania według wersji pakietu SDK Map Google i obsługę obu mechanizmów renderowania. Jeśli to możliwe, użyj najnowszego mechanizmu renderowania. Jeśli musisz użyć starszego mechanizmu renderowania, jawnie określ go za pomocą MapsInitializer.initialize()

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

* Po wdrożeniu nowego mechanizmu renderowania Map najnowszym mechanizmem renderowania wartość domyślną.

Jeśli musisz użyć preferowanego mechanizmu renderowania, uruchamiaj wszystkie operacje renderowania UI po OnMapsSdkInitializedCallback zwróceniu wyniku. Renderowanie UI to:

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

  • Ustawiam znaczniki na: ConsumerMapView.

Jeśli nie wykonasz tych operacji po otrzymaniu OnMapsSdkInitializedCallback wynik, pakiet SDK Maps nie przydziela Twojego preferowany mechanizm renderowania, a widok mapy jest renderowany przez domyślny mechanizm renderowania.

Zainicjuj pakiet SDK Maps przed zainicjowaniem pakietu Consumer SDK

  1. W klasie Application lub start-up Activity wywołaj metodę MapsInitializer.initialize().

  2. Poczekaj na wynik żądania mechanizmu renderowania, zanim zainicjujesz pakiet SDK dla klientów indywidualnych.

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ętrznie implementacja pakietu SDK klienta korzysta z SSL/TLS do bezpiecznej komunikacji. z usługą Fleet Engine. Interfejs API Androida w wersji 23 lub starszej może wymagać Poprawka SecurityProvider do komunikacji z serwerem. Więcej informacji o używaniu SSL na Androidzie znajdziesz w artykule Usługa zabezpieczeń GMS Provider. Artykuł zawiera też przykładowy kod, który pozwala zainstalować poprawki u dostawcy zabezpieczeń.

Co dalej?

Konfigurowanie mapy