Configurez les paramètres de votre application afin qu'elle puisse utiliser l'API Geospatial.
Prérequis
Avant de continuer, assurez-vous de bien comprendre les concepts fondamentaux de la RA et de savoir configurer une session ARCore.
Si vous souhaitez exécuter une application exemple qui illustre la fonctionnalité décrite consultez le Guide de démarrage rapide d'ARCore Geospatial pour Android pour Java. L'application exemple du guide de démarrage rapide est écrite en Java. Les exemples de code de ce document concernent la même fonctionnalité écrite en C.
Consultez le Présentation de l'API Geospatial pour plus d'informations sur l'API Geospatial.
Si vous débutez dans le développement avec ARCore, consultez la section Premiers pas pour en savoir plus 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 pour Java.
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é d'héberger, de stocker et de résoudre les repères géospatiaux.
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 pour 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, remplacez GeospatialMode
dans la configuration de la session par ENABLED
:
// Create a session config. ArConfig* ar_config = NULL; ArConfig_create(ar_session, &ar_config); // Enable the Geospatial API. ArConfig_setGeospatialMode(ar_session, ar_config, AR_GEOSPATIAL_MODE_ENABLED); CHECK(ArSession_configure(ar_session, ar_config) == AR_SUCCESS); // Release config resources. ArConfig_destroy(ar_config);
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 compatibles avec l'API Geospatial, comme décrit dans le guide de démarrage pour Java.
Pour vérifier la compatibilité de l'appareil de l'utilisateur, appelez ArSession_isGeospatialModeSupported()
.
Si cette valeur renvoie la valeur "false", n'essayez pas de configurer la session (ci-dessous), car ArStatus
signalera une AR_ERROR_UNSUPPORTED_CONFIGURATION
.
Demander à l'utilisateur l'autorisation d'accéder à la position au moment de l'exécution
Votre application doit demander des autorisations d'accéder à la position au moment de l'exécution.
Pour utiliser l'API ARCore Geospatial, votre application doit enregistrer les autorisations supplémentaires suivantes :
ACCESS_FINE_LOCATION
pour déterminer précisément la position de l'utilisateur.ACCESS_COARSE_LOCATION
si la localisation 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 pour fonctionner avec une position approximative, et les requêtes d'API échoueront lorsque l'utilisateur aura défini 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 que votre application n'ait accès qu'aux informations de localisation approximatives. 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 la position précise 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, le VPS peut fournir une précision de position d'environ cinq mètres et une précision de rotation de cinq degrés. Utilisez ArSession_checkVpsAvailabilityAsync()
pour déterminer si un emplacement donné est couvert par le 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
- Obtenez la position géospatiale de l'appareil photo de l'appareil pour déterminer la position exacte de l'appareil dans le monde réel.
- Vérifier la disponibilité du VPS à l'emplacement donné d'un appareil