Antes de comenzar estos procedimientos, asegúrate de haber habilitado los servicios adecuados y el SDK del consumidor como se describió en las secciones anteriores.
Para inicializar el SDK para consumidores, sigue estos pasos:
- Obtén la instancia
ConsumerAPI
- Cómo inicializar el SDK de Maps para solicitar el renderizador preferido
Obtén la instancia ConsumerApi
Para usar el SDK de consumidor, tu app debe inicializar el singleton ConsumerApi
de forma asíncrona. El método de inicialización toma la clase AuthTokenFactory
para generar tokens JWT nuevos para el usuario cuando sea necesario.
El providerId
es el ID de tu proyecto de Google Cloud. Para obtener más información sobre cómo crear un proyecto de Fleet Engine, consulta Crea tu proyecto de Fleet Engine en la guía de Fleet Engine.
Tu app debe implementar AuthTokenFactory
como se describe en Autenticación del SDK para consumidores.
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 de Maps y renderizadores de mapas
El SDK para consumidores v2.0.0 y versiones posteriores admiten la versión 18.1.0 y posteriores del SDK de Maps para Android. En la siguiente tabla, se resume el renderizador predeterminado por versión del SDK de Maps y la compatibilidad de ambos renderizadores. Si es posible, usa el procesador más reciente.
Si debes usar el renderizador heredado, especifícalo de forma explícita con MapsInitializer.initialize()
.
Versión del SDK de Maps | Admite el renderizador más reciente | Admite el procesador heredado | Renderizador predeterminado |
---|---|---|---|
V18.1.0 y versiones anteriores | Sí | Sí | Heredado* |
V18.2.0 | Sí | Sí | Más recientes |
* Con el lanzamiento del nuevo procesador de Maps, el procesador más reciente será el predeterminado.
Si debes usar un procesador preferido, ejecuta todas las operaciones de renderización de la IU después de que OnMapsSdkInitializedCallback
muestre un resultado. Las operaciones de renderización de la IU incluyen las siguientes operaciones:
Aumenta una vista que contiene
GoogleMapView
oConsumerMapView
.Coloca los marcadores en
ConsumerMapView
.
Si no ejecutas estas operaciones después de recibir el resultado OnMapsSdkInitializedCallback
, el SDK de Maps no asignará tu renderizador preferido y, en su lugar, el renderizador predeterminado renderizará la vista del mapa.
Inicializa el SDK de Maps antes de inicializar el SDK para consumidores
En tu clase
Application
oActivity
de inicio, llama a MapsInitializer.initialize().Espera el resultado de la solicitud del procesador antes de inicializar el SDK del consumidor.
Consulta los siguientes ejemplos para obtener más detalles.
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
De forma interna, la implementación del SDK del consumidor usa SSL/TLS para comunicarse de forma segura con el servicio de Fleet Engine. La versión 23 o las versiones anteriores de la API de Android pueden requerir un parche SecurityProvider
para comunicarse con el servidor. Para obtener más información sobre cómo trabajar con SSL en Android, consulta Proveedor de GMS de seguridad.
El artículo también contiene muestras de código para aplicar parches al proveedor de seguridad.