ARCore pour Jetpack XR
| Dernière mise à jour | Version stable | Version finale | Version bêta | Version alpha |
|---|---|---|---|---|
| 19 mai 2026 | - | - | - | 1.0.0-alpha14 |
Déclarer des dépendances
Pour ajouter une dépendance sur ARCore pour Jetpack XR, vous devez ajouter le dépôt Maven de Google à votre projet. Pour en savoir plus, consultez la section Dépôt Maven de Google.
Ajoutez les dépendances correspondant aux artefacts dont vous avez besoin dans le fichier build.gradle de votre application ou de votre module :
Groovy
dependencies { implementation "androidx.xr.arcore:arcore:1.0.0-alpha14" }
Kotlin
dependencies { implementation("androidx.xr.arcore:arcore:1.0.0-alpha14") }
Pour en savoir plus sur les dépendances, consultez Ajouter des dépendances de compilation.
Commentaires
Vos commentaires nous aident à améliorer Jetpack. N'hésitez pas à nous contacter si vous découvrez de nouveaux problèmes ou si vous avez des idées pour améliorer cette bibliothèque. Veuillez consulter les problèmes existants de cette bibliothèque avant d'en signaler un nouveau. Vous pouvez ajouter votre vote à un problème existant en cliquant sur le bouton en forme d'étoile.
Pour en savoir plus, consultez la documentation sur l'outil Issue Tracker.
Version 1.0
Version 1.0.0-alpha14
19 mai 2026
Publication d'androidx.xr.arcore:arcore-*:1.0.0-alpha14. Liste des commits de la version 1.0.0-alpha14
Modifications apportées à l'API
- Nous abandonnons
GeospatialMode.VPS_AND_GPSau profit deGeospatialMode.SPATIALet introduisons un nouveau mode de suivi à faible consommation d'énergie,GeospatialMode.INERTIAL, qui n'utilise que l'IMU et le GPS. (I1e6cd) - Les classes d'exception d'ancrage personnalisées
AnchorInvalidUuidException,AnchorNotAuthorizedException,AnchorUnsupportedLocationException,AnchorRuntimeFailureExceptionetAnchorUnsupportedObjectExceptionsont désormais des instancesRuntimeExceptionet ne sont pas destinées à être vérifiées. (I9356e) - Ajout de l'API
ArCoreTestRule, y comprisTestArDevice,TestAugmentableObject,TestDepthMap,TestEye,TestFace,TestGeospatial,TestHand,TestPlane,TestRenderViewpointetTestTrackable(I0ad3c) - Supprime
AnchorLoadInvalidUuid,AnchorCreateUnsupportedObject,AnchorCreateUnsupportedLocationetAnchorCreateNotAuthorized. Toutes ces erreurs sont désormais des exceptions dans l'environnement d'exécution. SupprimeAnchorCreateIllegalState. Dans la plupart des cas, il a été remplacé parAnchorCreateTrackingUnavailable. AjouteAnchorExceptionet les classes dérivéesAnchorInvalidUuidException,AnchorNotAuthorizedException,AnchorUnsupportedLocationException,AnchorRuntimeFailureExceptionetAnchorUnsupportedObjectException. (I4c4dd)
Problèmes connus
- Le suivi géospatial peut être perdu dans des scénarios de connectivité difficiles lors de l'utilisation de l'implémentation du runtime
arcore-projected. Pour résoudre le problème, supprimez cette implémentation de l'environnement d'exécution de votre application et utilisezarcore-play-servicesà la place. Il s'agira de la configuration par défaut dans la prochaine version.
Contribution externe
- Ajout de l'API
AugmentedImagepour le suivi des repères personnalisés (I0cf09)
Version 1.0.0-alpha13
6 mai 2026
Publication d'androidx.xr.arcore:arcore-*:1.0.0-alpha13. Liste des commits de la version 1.0.0-alpha13
Modifications apportées à l'API
TrackingStateetVpsAvailabilityResultont été déplacés versandroidx.xr.arcore package, et les types dansandroidx.xr.runtimesont désormais obsolètes. (Ic7930, b/480462213)- Changement de nom :
Plane.TypedevientPlaneType. (I8c90c, b/482675376) - Changement de nom :
Hand.HandSidedevientHandSide. (Ica562, b/482675376) - Changement de nom :
Plane.LabeldevientPlaneLabel. (Ic6b67, b/482675376) - Changement de nom :
Geospatial.SurfacedevientGeospatialSurface. (I1a8be, b/482675376) Geospatial.Statea été renomméGeospatialState. (I203fa, b/482675376)- L'API
NativeDataa été déplacée vers la bibliothèquexr:runtime:runtime. (I87954, b/494251500) Session.createetSession.configurene sont plus exhaustifs et nécessitent des clauses else dans les instructions when. (I9885e, b/495805998, b/495805998)androidx.xr.runtime.FieldOfViewest maintenant obsolète. Utilisezandroidx.xr.runtime.math.FieldOfViewà la place. (Ia01a0, b/480233045)- L'Orbiter utilise désormais un
OrbiterAnchorPoint + VolumeOffsetou unOrbiterPoseProviderau lieu de la position, du décalage, de l'offsetType, de l'alignement et de l'élévation. Le paramètreshouldRenderInNonSpatiala également été supprimé. Si le développeur ne souhaite pas que l'orbiteur s'affiche dans un espace non spatial, il doit l'encapsuler dans une instruction if et vérifierSpatialCapabilities. (I9fbb3, b/462428503) - Ajout de modificateurs déplaçables. Ces modificateurs fonctionnent bien, pour le moment, avec
SpatialPanelsetSpatialExternalSurface. Ils seront également bientôt disponibles pourSpatialGltfModels. Toutefois, l'objectif est de les prendre en charge correctement pour tous lesSubspaceComposables. (I9a3cd, b/479530787, b/478935063, b/478935063) - Les développeurs sont censés observer le flux
ArDevice.statepour surveillerState.trackingStateet ajuster le rendu ou les avertissements de leur application en conséquence en fonction de la fidélité du suivi. (Ic00f0, b/445466590) - Les valeurs d'énumération
HandJointTypeont été renommées. (Ifbc83, b/482670596) - Les constantes
FaceConfidenceRegionont été renommées. (Ia62d5, b/482670596) - Les constantes
FaceBlendShapeTypeont été renommées. (I33b8b, b/482670596) - Ajout de
CreatePoseFromGeospatialPoseErrorInternalet deCreateGeospatialPoseFromPoseErrorInternal. (I4bcf1, b/482666615) DeviceTrackingMode.LAST_KNOWNa été renomméSPATIAL_LAST_KNOWN(avec un remplacement obsolète),INERTIAL_LAST_KNOWNa été ajouté pour le suivi 3DoF etTRACKING_DEGRADEDa été ajouté àTrackingState. (Ie661c, b/445466590)- Abandon de
GroupEntity. Pour disposer d'une entité avec uniquement la fonctionnalité d'entité de base, appelezEntity.create, qui renverra une interface d'entité. (I4c450, b/473867483) - Ajout de l'API
XrLog. DéfinissezXrLog.isEnabledsurtruepour activer la journalisation dans JetpackXR et utilisezXrLog.Levelpour définir le niveau de journalisation. (I76a1f, b/463460895, b/487378441)
Correction de bugs
- Ajoutez la prise en charge de l'état de suivi des appareils aux appareils OpenXR. (I91485, b/445466590)
Version 1.0.0-alpha12
25 mars 2026
Publication d'androidx.xr.arcore:arcore-*:1.0.0-alpha12. Liste des commits de la version 1.0.0-alpha12
Modifications apportées à l'API
Config.augmentedObjectCategoriesest passé d'une liste à un ensemble. (I25a64, b/487376359)- Les types
androidx.xr.arcore.Eyeetandroidx.xr.arcore.Hand. (I42438, b/449032900) - Ajout de la surcharge
Session.createpour permettre la transmission d'un contexte Android pour la portée des ressources. (I7d3fe, b/415805990, b/477386334) - La valeur passe de
FakeRuntimeAnchor.ANCHOR_RESOURCE_LIMITàFakeRuntimeAnchor.anchorResourceLimit. (I90841, b/431992235) - L'API
TiltGestureest désormais expérimentale, car elle peut être modifiée ou supprimée à l'avenir. Pour utiliser cette API, activez@ExperimentalGesturesApi(Ic9858). - Ajout de la possibilité de définir des catégories pour le suivi
AugmentedObjectdans la configuration (I1f6e4, b/480220930)
Correction de bugs
- Correction du build Chrome en mettant à jour le fichier META-INF/services/ avec l'emplacement réel de
PerceptionRuntimeFactory. (I7a801, b/481288291)
Version 1.0.0-alpha11
25 février 2026
Publication d'androidx.xr.arcore:arcore-*:1.0.0-alpha11. Liste des commits de la version 1.0.0-alpha11
Version 1.0.0-alpha10
28 janvier 2026
Publication d'androidx.xr.arcore:arcore-*:1.0.0-alpha10. Liste des commits de la version 1.0.0-alpha10
Nouvelles fonctionnalités
- Présentation de l'API
TiltGesture, qui fournit unFlowréactif pour la détection stable de l'état d'inclinaison (HAUT/BAS) de l'appareil avec la progression de la transition. (Ic269f, b/448152779) - ARCore pour Jetpack XR utilise désormais le mécanisme de journalisation XR Runtime. Pour en savoir plus, consultez
androidx.xr.runtime.Log. (l52735, b/448697662)
Modifications apportées à l'API
Geospatial.createPoseFromGeospatialPosefonctionne désormais sur les appareils compatibles avec OpenXR. (l362c6)
Version 1.0.0-alpha09
3 décembre 2025
Publication d'androidx.xr.arcore:arcore-*:1.0.0-alpha09. Liste des commits de la version 1.0.0-alpha09
Version 1.0.0-alpha08
19 novembre 2025
Publication d'androidx.xr.arcore:arcore-*:1.0.0-alpha08. Liste des commits de la version 1.0.0-alpha08
Nouvelles fonctionnalités
ARCorepour Jetpack XR est désormais compatible avec les appareils sur lesquels les services Google Play pour la RA sont disponibles.- Ajout d'API Geospatial pour la disponibilité du VPS et la conversion de pose (I144dc)
Version 1.0.0-alpha07
22 octobre 2025
Publication d'androidx.xr.arcore:arcore-*:1.0.0-alpha07. Liste des commits de la version 1.0.0-alpha07
Correction de bugs
:xr:arcore:arcore-openxrajouté en tant que dépendance d'implémentation à:xr:arcore:arcore(I47315, b/446999229)
Version 1.0.0-alpha06
24 septembre 2025
Publication d'androidx.xr.arcore:arcore-*:1.0.0-alpha06. Liste des commits de la version 1.0.0-alpha06
Modifications apportées à l'API
- La compatibilité des tests pour
ARCorea été migrée vers le modulexr:arcore:arcore-testing. (I25469) - Ajout de
ArDeviceetRenderViewpointpour permettre aux applications de récupérer la pose et la configuration d'affichage de l'appareil à des fins de rendu. (Ib7e3f) - Renommez les énumérations
HandJointTypeavec le préfixeHAND_JOINT_TYPE_. (I3f7cd) HandJointTypea été déplacé dexr:runtime:runtimeversxr:arcore:arcore. (Iadb9c, b/409058039)Hand.Stateexpose désormais unjava.nio.FloatBufferavec les poses des articulations dans un format qui permet d'accéder facilement aux applications axées sur les performances. (I55e27)
Version 1.0.0-alpha05
30 juillet 2025
Publication d'androidx.xr.arcore:arcore:1.0.0-alpha05, androidx.xr.arcore:arcore-guava:1.0.0-alpha05 et androidx.xr.arcore:arcore-rxjava3:1.0.0-alpha05. Liste des commits de la version 1.0.0-alpha05
Nouvelles fonctionnalités
- Ajoutez
getPrimaryHandSidepour que le développeur puisse obtenir les informations sur le côté droit (I270bd). - Ajouter l'API de vérification de la disponibilité du VPS géospatial (I58573)
- Ajout de l'API ARCore pour
checkVpsAvailability(Idbded) - Fonctions d'extension
stateFlowableajoutées à:xr:arcore:arcore-rxjava3pour être utilisées par les développeurs Java. (I083aa, b/427247794)
Modifications apportées à l'API
- Les valeurs de configuration
*Modeont été renommées pour refléter leur comportement. (I6d247, b/414648065) - L'artefact ARCore principal (xr:arcore:arcore) ne contiendra que des API asynchrones de style Kotlin. Les développeurs Java peuvent s'appuyer sur la bibliothèque
xr:arcore:arcore-rxjava3pour accéder aux API compatibles. (Ia525e, b/422794329) - L'artefact ARCore principal (
xr:scenecore:scenecore) ne contiendra que des API asynchrones de style Kotlin. Les développeurs Java peuvent s'appuyer sur la bibliothèquexr:arcore:arcore-guavapour accéder aux API compatibles. (Iffcb4, b/422773524) Anchor.persistAsync()ajouté àAnchorGuavapour être utilisé par les développeurs Java. (I4af1c, b/425984631)Earth.createAnchorOnSurfaceAsync(Session, Double, Double, Double, Quaternion, Surface)ajouté àEarthGuavapour être utilisé par les développeurs Java. (I66357, b/425992992)- Les développeurs Java utiliseront les fonctions d'extension pour
GltfModel.createAsyncdansGltfModel.kt. Les fonctions asynchrones dansGltfModelseront supprimées. (I0af60) - Cette bibliothèque utilise désormais les annotations de nullité JSpecify, qui sont de type "type-use". Les développeurs Kotlin doivent utiliser l'argument de compilateur suivant pour garantir une utilisation correcte :
-Xjspecify-annotations=strict(il s'agit de la valeur par défaut à partir de la version 2.1.0 du compilateur Kotlin) (Ia8420, b/326456246). - Fonctions d'extension
subscribeAsFlowableajoutées à:xr:arcore:arcore-rxjava3pour être utilisées par les développeurs Java. (Id3e49, b/427277298)
Version 1.0.0-alpha04
7 mai 2025
Publication d'androidx.xr.arcore:arcore:1.0.0-alpha04. Liste des commits de la version 1.0.0-alpha04
Modifications apportées à l'API
- Les projets publiés avec Kotlin 2.0 nécessitent KGP 2.0.0 ou version ultérieure pour être utilisés. (Idb6b5)
TrackingStateetHandJointTypeont été déplacés d'ARCore vers Runtime.Hand.State.isActive (boolean)a été remplacé parHand.State.trackingState (androidx.xr.runtime.TrackingState).Anchor.loadrenvoieAnchor.AnchorLoadInvalidUuidsi l'UUID n'est pas valide.
Version 1.0.0-alpha03
26 février 2025
Publication d'androidx.xr.arcore:arcore:1.0.0-alpha03 sans modification notable par rapport à la dernière version alpha. Liste des commits de la version 1.0.0-alpha03
Version 1.0.0-alpha02
12 février 2025
Publication d'androidx.xr.arcore:arcore:1.0.0-alpha02. Liste des commits de la version 1.0.0-alpha02
Nouvelles fonctionnalités
- Ajout de la compatibilité avec le suivi des mains. Utilisez
Hand.leftetHand.rightpour accéder aux informations de suivi. - Les API qui génèrent une ancre (
Anchor.create,Anchor.load,Plane.createAnchor) renvoient désormais toutesAnchorCreateResultet implémentent correctementAnchorCreateResourcesExhausted.
Corrections de bugs
Anchor.detachne provoque plus de plantage fatal en raison d'une condition de concurrence avec le thread de mise à jour de la session.Anchor.createest plus stable lorsqu'il est exécuté sur un émulateur.
Version 1.0.0-alpha01
12 décembre 2024
Publication d'androidx.xr.arcore:arcore-* 1.0.0-alpha01.
Fonctionnalités de la version initiale
Inspirée de la bibliothèque ARCore existante, la bibliothèque ARCore pour Jetpack XR permet de mélanger du contenu numérique avec le monde réel. Cette bibliothèque inclut le suivi du mouvement, les ancres persistantes, les tests de sélection et l'identification des plans avec étiquetage sémantique (par exemple, le sol, les murs et les plateaux de table). Consultez le guide du développeur pour en savoir plus sur l'utilisation d'ARCore pour Jetpack XR.
Session: ARCore pour Jetpack XR utilise le Jetpack XR Runtime en coulisses pour alimenter ses fonctionnalités. Vous utiliserez une session pour interagir avec la plupart des API ARCore pour Jetpack XR. Veuillez donc consulter sa documentation.Plane: utilisez les plans pour comprendre le monde qui vous entoure. Chaque plan possède unLabelqui le décrit sémantiquement. Vous pouvez utilisersubscribepour être averti des derniers plans détectés oustatepour être averti des modifications apportées à un plan spécifique.Anchor: lien entre un objet virtuel et un lieu réel. Les ancres peuvent être associées à un emplacement spécifique dans l'espace (à l'aide decreate) ou à unTrackable(à l'aide decreateAnchor).Les ancres peuvent être réutilisées d'une session à l'autre. Vous pouvez utiliser
persistpour les stocker,getPersistedAnchorUuidspour les énumérer etloadpour les récupérer. Assurez-vous deunpersistles clés une fois qu'elles ne sont plus utilisées.Les ancres sont interopérables entre ARCore pour Jetpack XR et Jetpack SceneCore. Vous pouvez créer un
AnchorEntityà l'aide d'une ancre. Si vous disposez déjà d'une AnchorEntity, vous pouvez utilisergetAnchorpour récupérer son ancre de sauvegarde.Offrez des interactions utilisateur naturelles à l'aide de
hitTest. Un hitTest utilise unRaypour déterminer les contenus qu'il croise et créer unAnchorà partir de cet emplacement. Envisagez d'effectuer un hitTest à partir d'unInputEvent.
Problèmes connus
Il peut s'écouler un certain temps entre l'appel de
unpersistet la suppression de son UUID des résultats renvoyés pargetPersistedAnchorUuids.createne valide pas que le système dispose de suffisamment de ressources pour renvoyer de nouvelles ancres. La création d'un nombre excessif d'ancres peut entraîner un plantage.Il n'est actuellement pas possible de rendre persistant un ancrage qui l'a déjà été, puis a été supprimé.
L'utilisation dans l'émulateur est prise en charge, mais le comportement peut ne pas être aussi stable que lors de l'exécution sur un appareil réel. En particulier, les appels à
createpeuvent échouer avec une erreur de code natif et mettre fin immédiatement à l'activité.Dans certains cas, une
RuntimeExceptionpeut être générée par erreur lors de l'appel depersistavec le message "L'ancrage n'a pas été conservé". Dans ce cas, la fonction réussit quand même et l'ancrage est conservé. Nous vous recommandons d'encapsuler l'appel àpersistavec un bloctrypour contourner le problème.