Zanim rozpoczniesz te procedury, upewnij się, że masz włączone odpowiednie usługi i pakiet SDK klienta, jak opisano we wcześniejszych sekcjach.
Aby zainicjować pakiet Consumer SDK, wykonaj te czynności:
- Pobieranie instancji
ConsumerAPI - Inicjowanie pakietu Maps SDK w celu wysłania żądania preferowanego mechanizmu renderowania
Pobieranie instancji ConsumerApi
Aby korzystać z Consumer SDK, aplikacja musi asynchronicznie zainicjować obiekt pojedynczy ConsumerApi. Metoda inicjowania wykorzystuje klasę AuthTokenFactory do generowania nowych tokenów JWT dla użytkownika, gdy jest to konieczne.
providerId to identyfikator projektu Twojego projektu w chmurze 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 artykule Uwierzytelnianie w pakiecie SDK dla klientó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
}
Maps SDK i renderery 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 znajdziesz podsumowanie domyślnego mechanizmu renderowania według wersji pakietu SDK Map i informacje o obsłudze obu mechanizmów renderowania. Jeśli to możliwe, używaj najnowszego mechanizmu renderowania.
Jeśli musisz używać starszego mechanizmu renderowania, określ go bezpośrednio za pomocą MapsInitializer.initialize().
| Wersja pakietu SDK Map | Obsługuje najnowszy mechanizm renderowania | Obsługuje starszy mechanizm renderowania | Domyślny mechanizm renderowania |
|---|---|---|---|
| V18.1.0 i starsze | Tak | Tak | Starsza wersja* |
| V18.2.0 | Tak | Tak | Najnowsze |
* Po wprowadzeniu nowego mechanizmu renderowania map najnowszy mechanizm renderowania będzie domyślny.
Jeśli musisz użyć preferowanego mechanizmu renderowania, wykonaj wszystkie operacje renderowania interfejsu po zwróceniu wyniku przez OnMapsSdkInitializedCallback. Operacje renderowania interfejsu obejmują:
Rozwijanie widoku zawierającego
GoogleMapViewlubConsumerMapView.Umieszczam znaczniki na:
ConsumerMapView.
Jeśli nie wykonasz tych operacji po otrzymaniu wyniku OnMapsSdkInitializedCallback, pakiet SDK Map nie przydzieli preferowanego mechanizmu renderowania, a widok mapy zostanie wyrenderowany przez domyślny mechanizm renderowania.
Zainicjuj pakiet Maps SDK przed zainicjowaniem pakietu Consumer SDK
W klasie
Applicationlub klasie startowejActivitywywołaj MapsInitializer.initialize().Przed zainicjowaniem pakietu SDK dla konsumentów poczekaj na wynik żądania mechanizmu 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()
}
})
}
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ć poprawki SecurityProvider, aby komunikować się z serwerem. Więcej informacji o korzystaniu z protokołu SSL na Androidzie znajdziesz w artykule Dostawca zabezpieczeń GMS.
Artykuł zawiera też przykładowe kody do wprowadzania poprawek w dostawcy zabezpieczeń.