Inicjowanie pakietu SDK klienta

Zanim zaczniesz wykonywać te procedury, upewnij się, że masz włączone odpowiednie usługi i pakiet SDK dla konsumentów zgodnie z opisem w poprzednich sekcjach.

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

  1. Pobierz instancję ConsumerAPI
  2. Inicjowanie pakietu SDK Map w celu wysłania żądania dotyczącego preferowanego modułu renderującego

Pobierz instancję ConsumerApi

Aby korzystać z 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 sekcji Tworzenie 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
}

Pakiet SDK Map i wyświetlacze map

Pakiet Consumer SDK w wersji 2.0.0 lub nowszej obsługuje pakiet SDK Map Google na Androida w wersji 18.1.0 lub nowszej. Tabela poniżej zawiera podsumowanie domyślnego modułu renderującego według wersji pakietu SDK Map Google oraz obsługi obu modułów. W miarę możliwości używaj najnowszego modułu renderowania. Jeśli musisz użyć starszego modułu renderującego, określ go wyraźnie za pomocą parametru MapsInitializer.initialize().

Wersja pakietu SDK Map Obsługuje najnowszy procesor obsługuje starszego procesora, Domyślny procesor
Wersja 18.1.0 lub starsza 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 renderowania, wykonaj wszystkie operacje renderowania interfejsu użytkownika po zwróceniu wyniku przez OnMapsSdkInitializedCallback. Operacje związane z renderowaniem interfejsu obejmują:

  • zwiększanie liczby wyświetleń, które zawierają GoogleMapView lub ConsumerMapView;

  • umieszczanie znaczników na ConsumerMapView,

Jeśli po otrzymaniu wyniku OnMapsSdkInitializedCallback nie wykonasz tych operacji, SDK Map nie przypisze preferowanego renderowania, a widok mapy zostanie zamiast tego wyrenderowany przez domyślny render.

Zainicjuj pakiet SDK Maps przed zainicjowaniem pakietu SDK Consumer

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

  2. Zanim zainicjujesz pakiet SDK dla konsumenta, odczekaj na wynik żądania dotyczącego renderowania.

Szczegółowe informacje znajdziesz w podanych niżej 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()
      }
    })
  }

Informacje o protokole SSL/TLS

Wewnętrzna implementacja pakietu konsumenckiego SDK korzysta z protokołu SSL/TLS do bezpiecznej komunikacji z usługą Fleet Engine. Komunikacja z serwerem w przypadku wersji interfejsu API Androida 23 lub starszych może wymagać łatki SecurityProvider. Więcej informacji o używaniu protokołu SSL w Androidzie znajdziesz w artykule Usługa zabezpieczeń GMS. Artykuł zawiera też przykłady kodu do łatania dostawcy zabezpieczeń.

Co dalej?

Konfigurowanie mapy