Przed rozpoczęciem tych procedur sprawdź, czy masz włączone odpowiednie usługi i pakiet SDK Consumer SDK zgodnie z opisem we wcześniejszych sekcjach.
Aby zainicjować pakiet Consumer SDK, wykonaj te czynności:
- Pobierz instancję
ConsumerAPI
- 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ć 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 artykule o tworzeniu 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 renderującego.
Jeśli musisz użyć starszej wersji mechanizmu renderowania, wyraźnie wskaż ją za pomocą metody MapsInitializer.initialize()
.
Wersja pakietu SDK Map | Obsługuje najnowszy mechanizm renderowania | Obsługuje starszy mechanizm renderowania | Domyślny procesor |
---|---|---|---|
Wersja 18.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 mechanizmu renderowania, uruchom wszystkie operacje renderowania UI po zwróceniu wyniku przez OnMapsSdkInitializedCallback
. Operacje związane z renderowaniem interfejsu obejmują:
Powiększanie widoku danych, który zawiera
GoogleMapView
lubConsumerMapView
.Ustawiam znaczniki na:
ConsumerMapView
.
Jeśli nie wykonasz tych operacji po otrzymaniu wyniku OnMapsSdkInitializedCallback
, pakiet Maps SDK nie przydzieli preferowanego mechanizmu renderowania, a widok mapy będzie renderowany przez domyślny mechanizm renderowania.
Przed zainicjowaniem pakietu SDK dla klientów indywidualnych zainicjuj pakiet Maps SDK
W klasie
Application
lub startowej klasieActivity
wywołaj MapsInitializer.initialize()Przed zainicjowaniem pakietu Consumer SDK zaczekaj na wynik żądania dotyczącego 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 na temat protokołu 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 pracy z protokołem SSL na Androidzie znajdziesz w artykule Security GMS Provider (Dostawca zabezpieczeń GMS).
Artykuł zawiera też przykłady kodu do łatania dostawcy zabezpieczeń.