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 Maps w celu wysłania żądania dotyczącego preferowanego renderera

Pobieranie instancji ConsumerApi

Aby korzystać z pakietu Consumer SDK, aplikacja musi asynchronicznie zainicjować singletona ConsumerApi. 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
}

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 renderowania. Jeśli musisz użyć starszego modułu renderującego, określ go w sposób jawny za pomocą parametru MapsInitializer.initialize().

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

  • Rozwijanie widoku zawierającego element GoogleMapView lub ConsumerMapView.

  • umieszczanie znaczników na ConsumerMapView.

Jeśli po otrzymaniu wyniku OnMapsSdkInitializedCallback pakiet SDK Map nie wykona tych operacji, nie przypisze preferowanego renderowania i widok mapy zostanie wyrenderowany przez domyślny render.

Zainicjuj pakiet SDK Maps przed zainicjowaniem pakietu Consumer SDK

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

  2. Zanim zainicjujesz pakiet Consumer SDK, odczekaj na wynik żądania dotyczącego 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()
      }
    })
  }

Informacje o 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 używaniu SSL na Androidzie znajdziesz w artykule Usługa zabezpieczeń GMS Provider. Artykuł zawiera też przykłady kodu do łatania dostawcy zabezpieczeń.

Co dalej?

Konfigurowanie mapy