Initialiser le SDK client

Avant de commencer ces procédures, assurez-vous d'avoir activé les services appropriés et le SDK Consumer, comme décrit dans les sections précédentes.

Pour initialiser le Consumer SDK, procédez comme suit :

  1. Obtenir l'instance ConsumerAPI
  2. Initialiser le SDK Maps pour demander le moteur de rendu préféré

Obtenir l'instance ConsumerApi

Pour utiliser le SDK Consumer, votre application doit initialiser le singleton ConsumerApi de manière asynchrone. La méthode d'initialisation utilise la classe AuthTokenFactory pour générer de nouveaux jetons JWT pour l'utilisateur si nécessaire.

providerId correspond à l'ID du projet de votre projet Google Cloud. Pour en savoir plus sur la création d'un projet Fleet Engine, consultez Créer votre projet Fleet Engine dans le guide Fleet Engine.

Votre application doit implémenter AuthTokenFactory comme décrit dans Authentification du SDK 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 Maps et moteurs de rendu de cartes

Le SDK Consumer version 2.0.0 et ultérieure est compatible avec le SDK Maps pour Android version 18.1.0 et ultérieure. Le tableau suivant récapitule le moteur de rendu par défaut en fonction de la version du SDK Maps et de la compatibilité des deux moteurs de rendu. Si possible, utilisez le dernier moteur de rendu. Si vous devez utiliser l'ancien moteur de rendu, spécifiez-le explicitement à l'aide de MapsInitializer.initialize().

Version du SDK Maps Compatible avec le dernier moteur de rendu Compatible avec l'ancien moteur de rendu Render par défaut
V18.1.0 et versions antérieures Oui Oui Ancien*
V18.2.0 Oui Oui Les plus récents

* Avec le déploiement du nouveau moteur de rendu de carte, le dernier moteur de rendu sera celui par défaut.

Si vous devez utiliser un moteur de rendu préféré, exécutez toutes les opérations de rendu de l'UI après que OnMapsSdkInitializedCallback renvoie un résultat. Les opérations de rendu de l'UI incluent les opérations suivantes :

  • Gonfler une vue contenant GoogleMapView ou ConsumerMapView.

  • Placer des repères sur ConsumerMapView.

Si vous n'exécutez pas ces opérations après avoir reçu le résultat OnMapsSdkInitializedCallback, le SDK Maps n'alloue pas le moteur de rendu de votre choix et la vue de carte est rendue par le moteur de rendu par défaut.

Initialiser le SDK Maps avant d'initialiser le SDK Consumer

  1. Dans votre classe Application ou Activity de démarrage, appelez MapsInitializer.initialize().

  2. Attendez le résultat de la demande du moteur de rendu avant d'initialiser le SDK Consumer.

Pour en savoir plus, consultez les exemples ci-dessous.

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()
      }
    })
  }

Remarques sur SSL/TLS

En interne, l'implémentation du SDK Consumer utilise SSL/TLS pour communiquer de manière sécurisée avec le service Fleet Engine. Les versions 23 ou antérieures de l'API Android peuvent nécessiter un correctif SecurityProvider pour communiquer avec le serveur. Pour en savoir plus sur l'utilisation de SSL dans Android, consultez Fournisseur GMS de sécurité. L'article contient également des exemples de code pour corriger le fournisseur de sécurité.

Étape suivante

Configurer une carte