ARCore pour Jetpack XR

Intégrez du contenu numérique au monde réel grâce à des fonctionnalités de perception.
Dernière mise à jour Version stable Version finale Version bêta Version alpha
6 mai 2026 - - - 1.0.0-alpha13

Déclarer des dépendances

Pour ajouter une dépendance à ARCore pour Jetpack XR, vous devez ajouter le dépôt Maven de Google à votre projet. Pour en savoir plus, consultez le 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-alpha13"

    // Optional dependencies for asynchronous conversions
    implementation "androidx.xr.arcore:arcore-guava:1.0.0-alpha13"
    implementation "androidx.xr.arcore:arcore-rxjava3:1.0.0-alpha13"
}

Kotlin

dependencies {
    implementation("androidx.xr.arcore:arcore:1.0.0-alpha13")

    // Optional dependencies for asynchronous conversions
    implementation("androidx.xr.arcore:arcore-guava:1.0.0-alpha13")
    implementation("androidx.xr.arcore:arcore-rxjava3:1.0.0-alpha13")
}

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.

Signaler un nouveau problème

Pour en savoir plus, consultez la documentation sur l'outil Issue Tracker.

Version 1.0

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 these commits.

Modifications apportées à l'API

  • TrackingState et VpsAvailabilityResult ont été déplacés vers le androidx.xr.arcore package, et les types dans androidx.xr.runtime sont désormais obsolètes. (Ic7930, b/480462213)
  • Plane.Type a été renommé PlaneType. (I8c90c, b/482675376)
  • Hand.HandSide a été renommé HandSide. (Ica562, b/482675376)
  • Plane.Label a été renommé PlaneLabel. (Ic6b67, b/482675376)
  • Geospatial.Surface a été renommé GeospatialSurface. (I1a8be, b/482675376)
  • Geospatial.State a été renommé GeospatialState. (I203fa, b/482675376)
  • L'API NativeData a été déplacée vers la bibliothèque xr:runtime:runtime. (I87954, b/494251500)
  • Session.create et Session.configure ne sont plus exhaustifs et nécessitent des clauses else dans les instructions when. (I9885e, b/495805998, b/495805998)
  • androidx.xr.runtime.FieldOfView est maintenant obsolète. Utilisez androidx.xr.runtime.math.FieldOfView à la place. (Ia01a0, b/480233045)
  • Orbiter a été modifié pour utiliser un OrbiterAnchorPoint + VolumeOffset ou un OrbiterPoseProvider au lieu de position, offset, offsetType, alignment et elevation. Le paramètre shouldRenderInNonSpatial a é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érifier les SpatialCapabilities. (I9fbb3, b/462428503)
  • Ajout de modificateurs mobiles. Ces modificateurs fonctionnent bien, pour le moment, pour SpatialPanels et SpatialExternalSurface. Ils seront également bientôt compatibles avec SpatialGltfModels. Toutefois, l'objectif est qu'ils soient bien compatibles avec tous les SubspaceComposables. (I9a3cd, b/479530787, b/478935063, b/478935063)
  • Les développeurs doivent observer le flux ArDevice.state pour surveiller State.trackingState et ajuster le rendu ou les avertissements de leur application en fonction de la fidélité du suivi. (Ic00f0, b/445466590)
  • Les valeurs d'énumération HandJointType ont été renommées. (Ifbc83, b/482670596)
  • Les constantes FaceConfidenceRegion ont été renommées. (Ia62d5, b/482670596)
  • Les constantes FaceBlendShapeType ont été renommées. (I33b8b, b/482670596)
  • Ajout de CreatePoseFromGeospatialPoseErrorInternal et CreateGeospatialPoseFromPoseErrorInternal. (I4bcf1, b/482666615)
  • DeviceTrackingMode.LAST_KNOWN a été renommé SPATIAL_LAST_KNOWN (avec un fallback obsolète), INERTIAL_LAST_KNOWN a été ajouté pour le suivi 3DoF et TRACKING_DEGRADED a été ajouté à TrackingState. (Ie661c, b/445466590)
  • GroupEntity est maintenant obsolète. Pour qu'une entité ne dispose que de la fonctionnalité d'entité de base, appelez Entity.create, qui renverra une interface d'entité. (I4c450, b/473867483)
  • Ajout de l'API XrLog. Définissez XrLog.isEnabled sur true pour activer la journalisation dans JetpackXR, et utilisez XrLog.Level pour définir le niveau de journalisation. (I76a1f, b/463460895, b/487378441)

Correction de bugs

  • Ajout de 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.augmentedObjectCategories est passé d'une liste à un ensemble. (I25a64, b/487376359)
  • Les types androidx.xr.arcore.Eye et androidx.xr.arcore.Hand. (I42438, b/449032900)
  • Ajout d'une surcharge Session.create pour autoriser la transmission d'un contexte Android pour la délimitation des ressources. (I7d3fe, b/415805990, b/477386334)
  • Modification de FakeRuntimeAnchor.ANCHOR_RESOURCE_LIMIT en FakeRuntimeAnchor.anchorResourceLimit. (I90841, b/431992235)
  • L'API TiltGesture est 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 AugmentedObject dans la configuration (I1f6e4, b/480220930)

Correction de bugs

  • Correction de la compilation de 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 un Flow réactif pour la détection stable de l'état d'inclinaison (HAUT/BAS) de l'appareil avec une 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.createPoseFromGeospatialPose fonctionne 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 : ces commits.

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

  • ARCore pour 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é 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-openxr a été ajouté 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 prise en charge des tests pour ARCore a été migrée vers le module xr:arcore:arcore-testing. (I25469)
  • Ajout de ArDevice et RenderViewpoint pour permettre aux applications de récupérer la pose et la configuration d'affichage de l'appareil à des fins de rendu. (Ib7e3f)
  • Renommage des énumérations HandJointType avec le préfixe HAND_JOINT_TYPE_. (I3f7cd)
  • HandJointType a été déplacé de xr:runtime:runtime vers xr:arcore:arcore. (Iadb9c, b/409058039)
  • Hand.State expose désormais un java.nio.FloatBuffer avec 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

  • Ajout de getPrimaryHandSide pour que le développeur puisse obtenir les informations sur le côté de la main (I270bd)
  • Ajout d'une API de vérification de la disponibilité VPS géospatiale (I58573)
  • Ajout de l'API ARCore pour checkVpsAvailability (Idbded)
  • Fonctions d'extension stateFlowable ajoutées à :xr:arcore:arcore-rxjava3 pour être utilisées par les développeurs Java. (I083aa, b/427247794)

Modifications apportées à l'API

  • Les valeurs de configuration *Mode ont é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 dépendre de la bibliothèque xr:arcore:arcore-rxjava3 pour 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 dépendre de la bibliothèque xr:arcore:arcore-guava pour accéder aux API compatibles. (Iffcb4, b/422773524)
  • Anchor.persistAsync() a été ajouté à AnchorGuava pour être utilisé par les développeurs Java. (I4af1c, b/425984631)
  • Earth.createAnchorOnSurfaceAsync(Session, Double, Double, Double, Quaternion, Surface) a été ajouté à EarthGuava pour être utilisé par les développeurs Java. (I66357, b/425992992)
  • Les développeurs Java utiliseront les fonctions d'extension pour GltfModel.createAsync dans GltfModel.kt. Les fonctions asynchrones de GltfModel seront supprimées. (I0af60)
  • Cette bibliothèque utilise désormais les annotations de possibilité de valeur nulle JSpecify, qui sont des annotations d'utilisation de type. Les développeurs Kotlin doivent utiliser l'argument de compilateur suivant pour appliquer 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 subscribeAsFlowable ajoutées à :xr:arcore:arcore-rxjava3 pour ê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 l'utilisation de KGP 2.0.0 ou version ultérieure. (Idb6b5)
  • TrackingState et HandJointType ont été déplacés d'ARCore vers Runtime.
  • Hand.State.isActive (boolean) a été remplacé par Hand.State.trackingState (androidx.xr.runtime.TrackingState).
  • Anchor.load renvoie Anchor.AnchorLoadInvalidUuid si 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 these commits

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 these commits.

Nouvelles fonctionnalités

  • Ajout de la prise en charge du suivi des mains. Utilisez Hand.left et Hand.right pour accéder aux informations de suivi.
  • Les API qui génèrent une ancre (Anchor.create, Anchor.load, Plane.createAnchor) renvoient désormais toutes AnchorCreateResult et implémentent correctement AnchorCreateResourcesExhausted.

Corrections de bugs

  • Anchor.detach ne provoque plus de plantage fatal en raison d'une condition de concurrence avec le thread de mise à jour de la session.
  • Anchor.create est plus stable lorsqu'il est exécuté sur un émulateur.

Version 1.0.0-alpha01

12 décembre 2024

androidx.xr.arcore:arcore-* 1.0.0-alpha01 est publié.

Fonctionnalités de la version initiale

Inspirée de la bibliothèque ARCore existante, la bibliothèque ARCore pour Jetpack XR offre des fonctionnalités permettant de combiner du contenu numérique avec le monde réel. Cette bibliothèque inclut le suivi du mouvement, les ancres persistantes, les tests de positionnement et l'identification de plans avec étiquetage sémantique (par exemple, sol, murs et 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 Jetpack XR Runtime en arrière-plan 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 des plans pour comprendre le monde qui vous entoure. Chaque plan possède un Label qui le décrit sémantiquement. Vous pouvez utiliser subscribe pour être informé des derniers plans détectés ou state pour être informé des modifications apportées à un plan spécifique.

  • Anchor: lien entre un objet virtuel et un emplacement réel. Les ancres peuvent être associées à un emplacement spécifique dans l'espace (à l'aide de create) ou à un Trackable (à l'aide de createAnchor).

    • Les ancres peuvent être réutilisées dans plusieurs sessions. Vous pouvez utiliser persist pour les stocker, getPersistedAnchorUuids pour les énumérer et load pour les récupérer. Assurez-vous de les unpersist 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 ou, si vous disposez d'une AnchorEntity existante, vous pouvez utiliser getAnchor pour récupérer son ancre de sauvegarde.

    • Proposez des interactions utilisateur naturelles à l'aide de hitTest. Un hitTest utilise un Ray pour déterminer les contenus qu'il croise et créer une Anchor à partir de cet emplacement. Envisagez d'effectuer un hitTest à partir d'un InputEvent.

Problèmes connus

  • Il peut s'écouler un certain temps entre l'appel de unpersist et la suppression de son UUID des résultats renvoyés par getPersistedAnchorUuids.

  • create ne valide pas si 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.

  • La persistance d'une ancre qui a déjà été persistée et non persistée n'est actuellement pas prise en charge.

  • 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 à create peuvent échouer avec une erreur de code natif et mettre fin immédiatement à l'activité.

  • Dans certains cas, un RuntimeException peut être généré par erreur lors de l'appel de persist avec le message "Anchor was not persisted" (L'ancre n'a pas été persistée). Dans ce cas, la fonction réussit et l'ancre est persistée. Nous vous recommandons d'encapsuler l'appel à persist avec un bloc try pour contourner le problème.