ARCore pour Jetpack XR
Dernière mise à jour | Version stable | Version finale | Version bêta | Version alpha |
---|---|---|---|---|
30 juillet 2025 | - | - | - | 1.0.0-alpha05 |
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-alpha05" }
Kotlin
dependencies { implementation("androidx.xr.arcore:arcore:1.0.0-alpha05") }
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-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
- Ajoutez
getPrimaryHandSide
pour que le développeur puisse obtenir les informations sur le côté (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
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 s'appuyer sur 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 s'appuyer sur la bibliothèquexr:arcore:arcore-guava
pour accéder aux API compatibles. (Iffcb4, b/422773524) Anchor.persistAsync()
ajouté àAnchorGuava
pour être utilisé par les développeurs Java. (I4af1c, b/425984631)Earth.createAnchorOnSurfaceAsync(Session, Double, Double, Double, Quaternion, Surface)
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
dansGltfModel.kt
. Les fonctions asynchrones deGltfModel
seront 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
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
. La version 1.0.0-alpha04 contient ces commits.
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)
TrackingState
etHandJointType
ont été déplacés d'ARCore vers Runtime.Hand.State.isActive (boolean)
a été remplacé parHand.State.trackingState (androidx.xr.runtime.TrackingState)
.Anchor.load
renvoieAnchor.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. 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
etHand.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 toutesAnchorCreateResult
et implémentent correctementAnchorCreateResourcesExhausted
.
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
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 offre des fonctionnalités permettant de mélanger le 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 tables). 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 runtime Jetpack XR 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 unLabel
qui le décrit sémantiquement. Vous pouvez utilisersubscribe
pour être averti des derniers plans détectés oustate
pour ê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
persist
pour les stocker,getPersistedAnchorUuids
pour les énumérer etload
pour les récupérer. Assurez-vous deunpersist
les 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 utilisergetAnchor
pour récupérer son ancre de sauvegarde.Offrez des interactions utilisateur naturelles à l'aide de
hitTest
. Un hitTest utilise unRay
pour 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
unpersist
et la suppression de son UUID des résultats renvoyés pargetPersistedAnchorUuids
.create
ne 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é rendu non persistant.
L'utilisation dans l'émulateur est acceptée, 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, une
RuntimeException
peut être générée par erreur lors de l'appel depersist
avec 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 àpersist
avec un bloctry
pour contourner le problème.