Activer l'API Geospatial pour votre application Android (Kotlin/Java)

Configurez les paramètres de votre application afin qu'elle puisse utiliser l'API Geospatial.

Prérequis

Assurez-vous de bien maîtriser les concepts fondamentaux de la RA. et comment configurer une session ARCore avant de continuer.

Exemple d'application et d'atelier de programmation

Cette vidéo présente les étapes de création d'une application qui affiche Geospatial et place des contenus dans des lieux réels à l'aide de l'API Geospatial.

Vous pouvez également suivre l'atelier de programmation "Geospatial". pour les mêmes étapes. Pour exécuter l'application exemple créée dans la vidéo, consultez le guide de démarrage rapide avec ARCore Geospatial.

Consultez le Présentation de l'API Geospatial pour plus d'informations sur l'API Geospatial.

Si vous débutez avec ARCore, consultez la page Premiers pas. pour obtenir des informations sur les exigences logicielles et matérielles, les prérequis et d'autres informations spécifiques aux plates-formes que vous utilisez.

Assurez-vous que votre environnement de développement répond aux exigences du SDK ARCore, car décrit dans le guide de démarrage rapide.

Activer l'API ARCore

Avant d'utiliser le système de positionnement visuel (VPS) dans votre application, vous devez d'abord activer l'API ARCore ; dans un projet Google Cloud nouveau ou existant. Ce service est chargé de pour héberger, stocker et résoudre des ancres géospatiales.

L'autorisation sans clé est préférable, mais l'autorisation par clé API est également acceptée.

Ajouter les bibliothèques requises à votre application

Après avoir autorisé votre application à appeler l'API ARCore, vous devez ajouter des bibliothèques à activer les fonctionnalités géospatiales dans votre application.

Dans le fichier build.gradle de votre application, configurez les services Google Play pour inclure le compte bibliothèque d'emplacements des services.

dependencies {
  // Apps must declare play-services-location version >= 16.
  // In the following line, substitute `16 (or later)` with the latest version.
  implementation 'com.google.android.gms:play-services-location:16 (or later)'
}

Activer les fonctionnalités géospatiales dans la configuration de la session

Avant de créer la session, modifiez l'GeospatialMode de votre session configuration sur ENABLED:

Java

Config config = session.getConfig();
config.setGeospatialMode(Config.GeospatialMode.ENABLED);
session.configure(config);

Kotlin

// Enable the Geospatial API.
session.configure(session.config.apply { geospatialMode = Config.GeospatialMode.ENABLED })

Lorsque le mode Géospatial est défini sur ENABLED, l'application est autorisée à obtenir des informations géographiques à partir du système VPS (Visual Positioning System).

Demander à l'utilisateur d'autoriser l'utilisation des données de l'appareil

Les applications qui utilisent l'API ARCore Geospatial doivent présenter à l'utilisateur une invite pour accepter et autoriser l'utilisation des données de son appareil. Voir Exigences de confidentialité des utilisateurs. des informations.

Vérifier la compatibilité de l'appareil

Tous les appareils compatibles avec ARCore ne sont pas également compatibles avec l'API Geospatial, car décrites dans le guide de démarrage rapide.

Pour vérifier la compatibilité de l'appareil de l'utilisateur, appelez Session.checkGeospatialModeSupported() Si la valeur "false" est renvoyée, n'essayez pas de configurer la session (ci-dessous), et génèrera une UnsupportedConfigurationException

Demander à l'utilisateur l'autorisation d'accéder à la position au moment de l'exécution

Votre application doit demander l'autorisation d'accéder à la position au moment de l'exécution.

Pour que vous puissiez utiliser l'API ARCore Geospatial, votre application doit enregistrer les éléments suivants : autorisations supplémentaires:

  • ACCESS_FINE_LOCATION pour déterminer avec précision la localisation de l'utilisateur.

  • ACCESS_COARSE_LOCATION si la position de l'utilisateur n'est pas déterminée avec précision et pour respecter aux exigences de confidentialité des utilisateurs. Toutefois, l'API Geospatial ne peut pas être configurée utiliser la position approximative, et les requêtes API échoueront lorsque l'utilisateur aura définir cette autorisation. Pour en savoir plus, consultez les informations ci-dessous.

  • ACCESS_INTERNET pour contacter le service de l'API ARCore Geospatial.

<manifest ... >
  <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
  <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
  <uses-permission android:name="android.permission.INTERNET" />
</manifest>

Sur les appareils équipés d'Android 12 ou version ultérieure, les utilisateurs peuvent demander auxquelles votre application n'a accès position approximative des informations. Pour répondre à cette demande, votre application doit disposer du ACCESS_COARSE_LOCATION l'autorisation configurée, ainsi que ACCESS_FINE_LOCATION, comme indiqué ci-dessus. Vous devez configurer les deux autorisations d'accéder à la position.

Toutefois, lorsque les utilisateurs spécifient une position approximative, cela empêche l'API Geospatial d'obtenir l'emplacement précis dont elle a besoin. Le service Geospatial ne peuvent pas être configurées si votre application ne lui fournit qu'une position approximative. Votre application ne peut pas utiliser l'API Geospatial avec une position approximative.

Vérifier la disponibilité de l'API Geospatial à la position actuelle de l'appareil

Étant donné que l'API Geospatial utilise une combinaison de VPS et de GPS pour déterminer une position géospatiale, vous pouvez l'utiliser tant que l'appareil est en mesure de déterminer sa position. Dans les zones où la précision du GPS est faible, comme les espaces intérieurs et les environnements urbains denses, l'API s'appuie sur la couverture VPS pour générer des postures avec une grande précision. Dans des conditions normales, les VPS offrent une précision de position d'environ 5 mètres et une précision de rotation de 5 degrés. Utilisez Session.checkVpsAvailabilityAsync() pour déterminer si un emplacement donné dispose d'une couverture VPS.

L'API Geospatial peut également être utilisée dans les zones qui ne disposent pas de couverture VPS. En extérieur, le GPS peut suffire à générer une position avec une grande précision dans les environnements où il n'y a pas ou peu d'obstacles au-dessus de la tête.

Étape suivante