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:
- 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ć 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
lubConsumerMapView
.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
W klasie
Application
lub start-upActivity
wywołaj metodę MapsInitializer.initialize().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ń.