Antes de iniciar esses procedimentos, verifique se você ativou os serviços adequados e o SDK do Consumidor, conforme descrito nas seções anteriores.
Para inicializar o SDK do consumidor, siga estas etapas:
- Acessar a instância de
ConsumerAPI - Inicializar o SDK do Maps para solicitar o renderizador preferido
Acessar a instância de ConsumerApi
Para usar o SDK do Consumidor, seu app precisa inicializar o singleton
ConsumerApi de forma assíncrona. O método de inicialização usa a
classe AuthTokenFactory para gerar novos tokens JWT para o usuário quando necessário.
providerId é o ID do projeto do Google Cloud. Para mais informações sobre como criar um projeto do Fleet Engine, consulte Criar seu projeto do Fleet Engine no guia do Fleet Engine.
Seu app precisa implementar o AuthTokenFactory conforme descrito em Autenticação do SDK do consumidor.
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
}
SDK do Maps e renderizadores de mapas
O SDK do consumidor v2.0.0 e versões mais recentes são compatíveis com o SDK do Maps para Android v18.1.0 e versões mais recentes. A tabela a seguir resume o renderizador padrão por versão do SDK do Maps
e a capacidade de suporte dos dois renderizadores. Se possível, use o renderizador mais recente.
Se você precisar usar o renderizador legado, especifique-o explicitamente usando
MapsInitializer.initialize().
| Versão do SDK do Maps | Compatível com o renderizador mais recente | Oferece suporte ao renderizador legado | Renderizador padrão |
|---|---|---|---|
| V18.1.0 e anteriores | Sim | Sim | Legado* |
| V18.2.0 | Sim | Sim | Mais recentes |
* Com o lançamento do novo renderizador do Maps, o renderizador mais recente será o padrão.
Se você precisar usar um renderizador preferencial, execute todas as operações de renderização de interface
depois que OnMapsSdkInitializedCallback retornar um resultado. As operações de renderização da interface incluem:
Inflar uma visualização que contém
GoogleMapViewouConsumerMapView.Colocando marcadores em
ConsumerMapView.
Se você não executar essas operações depois de receber o resultado OnMapsSdkInitializedCallback, o SDK do Maps não vai alocar o renderizador preferencial, e a visualização do mapa será renderizada pelo renderizador padrão.
Inicialize o SDK do Maps antes do SDK do consumidor
Na sua classe
Applicationou de inicializaçãoActivity, chame MapsInitializer.initialize()Aguarde o resultado da solicitação do renderizador antes de inicializar o SDK do Consumidor.
Confira os exemplos a seguir para mais detalhes.
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()
}
})
}
Observações sobre SSL/TLS
Internamente, a implementação do SDK do Consumidor usa SSL/TLS para se comunicar com segurança
com o serviço do Fleet Engine. As versões 23 ou anteriores da API Android podem exigir um patch SecurityProvider para se comunicar com o servidor. Para mais informações
sobre como trabalhar com SSL no Android, consulte Provedor
de segurança do GMS.
O artigo também contém exemplos de código para corrigir o provedor de segurança.