Inicializa el SDK del consumidor

Antes de comenzar con estos procedimientos, asegúrate de haber habilitado los servicios adecuados y el SDK de Consumer como se describe en las secciones anteriores.

Para inicializar el SDK de Consumer, sigue estos pasos:

  1. Obtén la instancia de ConsumerAPI.
  2. Inicializa el SDK de Maps para solicitar el procesador preferido.

Obtén la instancia de ConsumerApi

Para usar el SDK de Consumer, 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 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 Consumer.

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 procesadores de mapas

El SDK de Consumer 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 procesador predeterminado por versión del SDK de Maps y la compatibilidad de ambos procesadores. Si es posible, usa el procesador 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 procesador heredado Procesador predeterminado
V18.1.0 y versiones anteriores Heredado*
V18.2.0 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 procesamiento de la IU después de que OnMapsSdkInitializedCallback muestre un resultado. Las operaciones de procesamiento de la IU incluyen las siguientes:

  • Inflar una vista que contenga GoogleMapView o ConsumerMapView.

  • Colocar marcadores en ConsumerMapView.

Si no ejecutas estas operaciones después de recibir el resultado de OnMapsSdkInitializedCallback, el SDK de Maps no asigna tu procesador preferido y la vista de mapa se procesa con el procesador predeterminado.

Inicializa el SDK de Maps antes de inicializar el SDK de Consumer

  1. En tu Application o clase Activity de inicio, llama a MapsInitializer.initialize()

  2. Espera el resultado de la solicitud del procesador antes de inicializar el SDK de Consumer.

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

Internamente, la implementación del SDK de Consumer usa SSL/TLS para comunicarse de forma segura con el servicio de Fleet Engine. Las versiones 23 o 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.

¿Qué sigue?

Configura un mapa