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 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.
O providerId
é o ID do projeto do seu 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 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 | Compatível com o renderizador legado | Renderizador padrão |
---|---|---|---|
V18.1.0 e versões anteriores | Sim | Sim | Legado* |
V18.2.0 | Sim | Sim | Mais recentes |
* Com o lançamento do novo renderizador de mapas, o renderizador mais recente será o padrão.
Se você precisar usar um renderizador preferido, execute todas as operações de renderização da interface
depois que OnMapsSdkInitializedCallback
retornar um resultado. As operações de renderização da interface incluem:
Aumentar uma visualização que contém
GoogleMapView
ouConsumerMapView
.Colocando marcadores em
ConsumerMapView
.
Se você não executar essas operações depois de receber o resultado OnMapsSdkInitializedCallback
, o SDK Maps não vai alocar o renderizador preferido, 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
Application
ouActivity
de inicialização, 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.