Antes de comenzar con estos procedimientos, asegúrate de haber habilitado los servicios adecuados y el SDK de consumidor, como se describe en las secciones anteriores.
Para inicializar el SDK de consumidor, sigue estos pasos:
- Obtén la instancia de
ConsumerAPI - Inicializa el SDK de Maps para solicitar el renderizador preferido
Obtén la instancia de 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.
providerId es el ID del proyecto 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 el AuthTokenFactory como se describe en Autenticación del SDK de 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 de Maps y renderizadores de mapas
El SDK de consumidor v2.0.0 y versiones posteriores admiten el SDK de Maps para Android v18.1.0 y versiones posteriores. 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 renderizador más reciente.
Si debes usar el procesador heredado, especifícalo de forma explícita con
MapsInitializer.initialize().
| Versión del SDK de Maps | Admite el procesador más reciente. | Admite el renderizador 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 renderizador preferido, ejecuta todas las operaciones de renderización de la IU después de que OnMapsSdkInitializedCallback devuelva un resultado. Las operaciones de renderización de IU incluyen las siguientes:
Aumentar una vista que contiene
GoogleMapViewoConsumerMapViewColoca marcadores en
ConsumerMapView.
Si no ejecutas estas operaciones después de recibir el resultado OnMapsSdkInitializedCallback, el SDK de Maps no asignará el renderizador que prefieras y, en su lugar, la vista de mapa se renderizará con el renderizador predeterminado.
Inicializa el SDK de Maps antes de inicializar el SDK de consumidor
En tu clase
Applicationo de inicioActivity, llama a MapsInitializer.initialize().Espera el resultado de la solicitud del renderizador antes de inicializar el SDK de 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 de consumidor usa SSL/TLS para comunicarse de forma segura
con el servicio de Fleet Engine. Es posible que las versiones 23 o anteriores de la API de Android requieran un parche de 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.
En el artículo, también se incluyen muestras de código para aplicar parches al proveedor de seguridad.