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, seu app precisa inicializar o
ConsumerApi
de singleton 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 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.
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 posteriores são compatíveis com o SDK do Maps para Android v18.1.0 e posteriores. A tabela a seguir resume o renderizador padrão por versão do SDK do Maps e o suporte de ambos. 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 | 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ê precisa usar um renderizador de sua preferência, 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 as seguintes:
Aumento de uma visualização que contém
GoogleMapView
ouConsumerMapView
.Inserindo marcadores em
ConsumerMapView
.
Se você não executar essas operações depois de receber o resultado do OnMapsSdkInitializedCallback
, o SDK do Maps não vai alocar seu renderizador preferido, e a visualização de mapa vai 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 ao provedor de segurança.