Inicjowanie pakietu SDK klienta

Zanim rozpoczniesz te procedury, włącz odpowiednie usługi i pakiet 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 Map w celu wysłania prośby o preferowany moduł renderujący

Pobieranie instancji ConsumerApi

Aby korzystać z pakietu SDK dla konsumentów, aplikacja musi zainicjować singleton ConsumerApiasynchronicznie. Metoda inicjowania przyjmuje klasę AuthTokenFactory, aby w razie potrzeby generować dla użytkownika nowe tokeny JWT.

providerId to identyfikator projektu w Twoim projekcie Google Cloud. Więcej informacji o tworzeniu projektu Fleet Engine znajdziesz w artykule Tworzenie projektu Fleet Engine w przewodniku po Fleet Engine.

Aplikacja powinna implementować AuthTokenFactory zgodnie z opisem w sekcji Uwierzytelnianie w pakiecie SDK dla konsumentów.

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 renderery map

Pakiet Consumer SDK w wersji 2.0.0 i nowszych obsługuje pakiet Maps SDK na Androida w wersji 18.1.0 i nowszych. W tabeli poniżej znajdziesz podsumowanie domyślnego renderera według wersji pakietu Maps SDK oraz informacje o obsłudze obu rendererów. Jeśli to możliwe, użyj najnowszego renderera. Jeśli musisz użyć starszego renderera, określ go wprost za pomocą tagu MapsInitializer.initialize().

Wersja pakietu Maps SDK Obsługa najnowszego renderera Obsługa starszego renderowania Domyślny moduł renderujący
V18.1.0 i starsze Tak Tak Starsza wersja*
V18.2.0 Tak Tak Najnowsze

* Wraz z wprowadzeniem nowego renderowania Map najnowszy renderer będzie domyślny.

Jeśli musisz użyć preferowanego renderera, uruchom wszystkie operacje renderowania interfejsu użytkownika po zwróceniu wyniku przez OnMapsSdkInitializedCallback. Operacje renderowania interfejsu obejmują:

  • Rozszerzanie widoku, który zawiera GoogleMapView lub ConsumerMapView.

  • Umieszczanie znaczników na ConsumerMapView.

Jeśli po otrzymaniu wyniku OnMapsSdkInitializedCallback nie wykonasz tych operacji, pakiet SDK Map nie przydzieli preferowanego renderera, a widok mapy zostanie wyrenderowany przez domyślny renderer.

Zainicjuj pakiet SDK Maps przed zainicjowaniem pakietu SDK dla konsumentów

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

  2. Przed zainicjowaniem pakietu SDK konsumenta poczekaj na wynik żądania renderera.

Szczegóły 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()
      }
    })
  }

Uwagi dotyczące protokołów SSL/TLS

Wewnętrznie implementacja pakietu Consumer SDK używa protokołu SSL/TLS do bezpiecznej komunikacji z usługą Fleet Engine. Wersje interfejsu API Androida 23 lub starsze mogą wymagać SecurityProviderpoprawki, aby komunikować się z serwerem. Więcej informacji o pracy z SSL na Androidzie znajdziesz w artykule Dostawca GMS Security. Artykuł zawiera też przykłady kodu do poprawiania dostawcy zabezpieczeń.

Co dalej?

Konfigurowanie mapy