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
Para usar o SDK do consumidor, o 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 seu projeto do Google Cloud. Para mais
informações sobre como criar um projeto da Fleet Engine, consulte
Criar seu projeto da Fleet Engine no guia da Fleet Engine.
O 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 oferece suporte ao 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 compatibilidade com os 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 | Suporte ao renderizador mais recente | Suporte ao 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 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:
Aumento de uma visualização que contém
GoogleMapView
ouConsumerMapView
.Inserção de marcadores em
ConsumerMapView
.
Se você não executar essas operações após receber o resultado OnMapsSdkInitializedCallback
, o SDK do Maps não vai alocar o renderizador preferido, e a visualização do mapa será renderizada pelo renderizador padrão.
Inicializar o SDK do Maps antes de inicializar o SDK do consumidor
Na 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()
}
})
}
Notas 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 do Android podem exigir um
patch SecurityProvider
para se comunicar com o servidor. Para mais informações
sobre como trabalhar com SSL no Android, consulte Security GMS
Provider.
O artigo também contém exemplos de código para aplicar patches no provedor de segurança.