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
25 mars 2026 - - - 1.0.0-alpha12

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-alpha12"

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

Kotlin

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

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

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-alpha12

25 mars 2026

Publication d'androidx.xr.arcore:arcore-*:1.0.0-alpha12. La version 1.0.0-alpha12 contient ces commits.

Modifications apportées à l'API

  • Modification de Config.augmentedObjectCategories d'une liste à un ensemble. (I25a64, b/487376359)
  • Types androidx.xr.arcore.Eye et androidx.xr.arcore.Hand. (I42438, b/449032900)
  • Ajout de la 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)
  • Définition de l'API TiltGesture comme 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. La version 1.0.0-alpha11 contient ces commits.

Version 1.0.0-alpha10

28 janvier 2026

Publication d'androidx.xr.arcore:arcore-*:1.0.0-alpha10. La version 1.0.0-alpha10 contient ces commits.

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 de l'appareil (HAUT/BAS) 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.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. La version 1.0.0-alpha09 contient ces commits.

Version 1.0.0-alpha08

19 novembre 2025

Publication d'androidx.xr.arcore:arcore-*:1.0.0-alpha08. La version 1.0.0-alpha08 contient ces commits.

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 géospatiales 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. La version 1.0.0-alpha07 contient ces commits.

Correction de bugs

  • :xr:arcore:arcore-openxr 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. La version 1.0.0-alpha06 contient ces commits.

Modifications apportées à l'API

  • La compatibilité 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. La version 1.0.0-alpha05 contient ces commits.

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 disponibilité VPS pour la vérification géospatiale (I58573)
  • Ajout de l'API ARCore pour checkVpsAvailability (Idbded)
  • Ajout de fonctions d'extension stateFlowable à :xr:arcore:arcore-rxjava3 pour les développeurs Java. (I083aa, b/427247794)

Modifications apportées à l'API

  • Les valeurs *Mode de configuration 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)
  • Ajout de Anchor.persistAsync() à AnchorGuava pour les développeurs Java. (I4af1c, b/425984631)
  • Ajout de Earth.createAnchorOnSurfaceAsync(Session, Double, Double, Double, Quaternion, Surface) à EarthGuava pour 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 des annotations de nullité JSpecify, qui sont de type "use". 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)
  • Ajout de fonctions d'extension subscribeAsFlowable à :xr:arcore:arcore-rxjava3 pour 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. La version 1.0.0-alpha04 contient ces commits.

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 depuis la dernière version alpha. La version 1.0.0-alpha03 contient ces commits.

Version 1.0.0-alpha02

12 février 2025

Publication d'androidx.xr.arcore:arcore:1.0.0-alpha02. La version 1.0.0-alpha02 contient ces commits.

Nouvelles fonctionnalités

  • Ajout de la compatibilité avec le 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 des mouvements, les ancres persistantes, les tests de détection et l'identification des 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 d'une session à l'autre. 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 le contenu 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 y avoir un délai 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 immédiatement fin à 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 comme solution de contournement.