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:
- Pobierz instancję
ConsumerAPI
- 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
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().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ń.