Zanim rozpoczniesz te procedury, włącz odpowiednie usługi i pakiet SDK dla konsumentów zgodnie z opisem w poprzednich sekcjach.
Aby zainicjować pakiet Consumer SDK, wykonaj te czynności:
- Pobierz instancję
ConsumerAPI
- Inicjowanie pakietu SDK Map w celu wysłania prośby o preferowany moduł renderujący
Pobieranie instancji ConsumerApi
Aby korzystać z pakietu Consumer SDK, aplikacja musi zainicjować singletona
ConsumerApi
asynchronicznie. 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 i informacje o obsłudze obu rendererów. W miarę możliwości używaj najnowszego renderera.
Jeśli musisz użyć starszego renderera, określ go wprost za pomocą kodu MapsInitializer.initialize()
.
Wersja pakietu SDK Map Google | Obsługa najnowszego renderera | Obsługa starszego renderera | Domyślny moduł renderujący |
---|---|---|---|
Wersja 18.1.0 i starsze | Tak | Tak | Starsza wersja* |
V18.2.0 | Tak | Tak | Najnowsze |
* Wraz z wprowadzeniem nowego renderera Map najnowszy renderer będzie domyślny.
Jeśli musisz użyć preferowanego renderera, wykonuj wszystkie operacje renderowania interfejsu po zwróceniu wyniku przez funkcję OnMapsSdkInitializedCallback
. Operacje renderowania interfejsu obejmują:
Rozszerzanie widoku, który zawiera
GoogleMapView
lubConsumerMapView
.Umieszczanie znaczników w
ConsumerMapView
.
Jeśli po otrzymaniu wyniku OnMapsSdkInitializedCallback
nie wykonasz tych operacji, pakiet SDK Map Google nie przydzieli preferowanego renderera, a widok mapy będzie renderowany przez domyślny renderer.
Zainicjuj pakiet Maps SDK przed zainicjowaniem pakietu Consumer SDK
W klasie
Application
lub klasie startowejActivity
wywołaj MapsInitializer.initialize().Przed zainicjowaniem pakietu SDK dla konsumentów poczekaj na wynik żądania renderowania.
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 dotyczące 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ć SecurityProvider
poprawki, 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 aktualizowania dostawcy zabezpieczeń.