Inicjowanie pakietu SDK klienta

Zanim zaczniesz wykonywać te procedury, upewnij się, że masz włączone odpowiednie usługi i Consumer SDK 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 renderowania

Pobieranie instancji ConsumerApi

Aby korzystać z 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ć funkcję 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 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. W tabeli poniżej podano domyślny mechanizm renderowania według wersji pakietu SDK Map Google oraz obsługę 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 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. Przed zainicjowaniem pakietu Consumer SDK zaczekaj 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 protokole 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