ARCore para Jetpack XR
Actualización más reciente | Versión estable | Versión potencial | Versión beta | Versión alfa |
---|---|---|---|---|
30 de julio de 2025 | - | - | - | 1.0.0-alpha05 |
Cómo declarar dependencias
Para agregar una dependencia en ARCore para Jetpack XR, debes agregar el repositorio de Maven de Google a tu proyecto. Lee el repositorio de Maven de Google para obtener más información.
Agrega las dependencias de los artefactos que necesites en el archivo build.gradle
de tu app o módulo:
Groovy
dependencies { implementation "androidx.xr.arcore:arcore:1.0.0-alpha05" }
Kotlin
dependencies { implementation("androidx.xr.arcore:arcore:1.0.0-alpha05") }
Para obtener más información sobre las dependencias, consulta Cómo agregar dependencias de compilación.
Comentarios
Tus comentarios ayudan a mejorar Jetpack. Avísanos si descubres nuevos errores o tienes ideas para mejorar esta biblioteca. Consulta los errores existentes de esta biblioteca antes de crear uno nuevo. Puedes agregar tu voto a un error existente haciendo clic en el botón de la estrella.
Consulta la documentación sobre la Herramienta de seguimiento de errores para obtener más información.
Versión 1.0
Versión 1.0.0-alpha05
30 de julio de 2025
Lanzamiento de androidx.xr.arcore:arcore:1.0.0-alpha05
, androidx.xr.arcore:arcore-guava:1.0.0-alpha05
y androidx.xr.arcore:arcore-rxjava3:1.0.0-alpha05
. La versión 1.0.0-alpha05 contiene estas confirmaciones.
Nuevas funciones
- Agrega
getPrimaryHandSide
para que el desarrollador pueda obtener la información del lado derecho (I270bd). - Agrega la API de disponibilidad de VPS de verificación geoespacial (I58573)
- Se agregó la API de ARCore para
checkVpsAvailability
(Idbded). - Se agregaron funciones de extensión
stateFlowable
a:xr:arcore:arcore-rxjava3
para que las usen los desarrolladores de Java. (I083aa, b/427247794)
Cambios en la API
- Se cambiaron los nombres de los valores de Config
*Mode
para reflejar su comportamiento. (I6d247, b/414648065) - El artefacto principal de ARCore (xr:arcore:arcore) solo contendrá APIs asíncronas de estilo Kotlin. Los desarrolladores de Java pueden depender de la biblioteca
xr:arcore:arcore-rxjava3
para acceder a las APIs compatibles. (Ia525e, b/422794329) - El artefacto principal de ARCore (
xr:scenecore:scenecore
) solo contendrá APIs asíncronas de estilo Kotlin. Los desarrolladores de Java pueden depender de la bibliotecaxr:arcore:arcore-guava
para acceder a las APIs compatibles. (Iffcb4, b/422773524) - Se agregó
Anchor.persistAsync()
aAnchorGuava
para que lo usen los desarrolladores de Java. (I4af1c, b/425984631) - Se agregó
Earth.createAnchorOnSurfaceAsync(Session, Double, Double, Double, Quaternion, Surface)
aEarthGuava
para que lo usen los desarrolladores de Java. (I66357, b/425992992) - Los desarrolladores de Java usarán las funciones de extensión para
GltfModel.createAsync
enGltfModel.kt
. Se borrarán las funciones asíncronas enGltfModel
. (I0af60) - Esta biblioteca ahora usa anotaciones de nulabilidad de JSpecify, que son de uso de tipo. Los desarrolladores de Kotlin deben usar el siguiente argumento del compilador para aplicar el uso correcto:
-Xjspecify-annotations=strict
(este es el valor predeterminado a partir de la versión 2.1.0 del compilador de Kotlin) (Ia8420, b/326456246) - Se agregaron funciones de extensión
subscribeAsFlowable
a:xr:arcore:arcore-rxjava3
para que las usen los desarrolladores de Java. (Id3e49, b/427277298)
Versión 1.0.0-alpha04
7 de mayo de 2025
Lanzamiento de androidx.xr.arcore:arcore:1.0.0-alpha04
. La versión 1.0.0-alpha04 contiene estas confirmaciones.
Cambios en la API
- Los proyectos lanzados con Kotlin 2.0 requieren que se consuma KGP 2.0.0 o una versión posterior. (Idb6b5)
TrackingState
yHandJointType
se movieron de ARCore a Runtime.- Se cambió
Hand.State.isActive (boolean)
porHand.State.trackingState (androidx.xr.runtime.TrackingState)
. Anchor.load
devuelveAnchor.AnchorLoadInvalidUuid
si el UUID no es válido.
Versión 1.0.0-alpha03
26 de febrero de 2025
Lanzamiento de androidx.xr.arcore:arcore:1.0.0-alpha03
sin cambios notables desde la última versión alfa. La versión 1.0.0-alpha03 contiene estas confirmaciones.
Versión 1.0.0-alpha02
12 de febrero de 2025
Lanzamiento de androidx.xr.arcore:arcore:1.0.0-alpha02
. La versión 1.0.0-alpha02 contiene estas confirmaciones.
Nuevas funciones
- Se agregó compatibilidad con el monitoreo de manos. Usa
Hand.left
yHand.right
para acceder a la información de seguimiento. - Las APIs que generan un ancla (
Anchor.create
,Anchor.load
,Plane.createAnchor
) ahora devuelvenAnchorCreateResult
y, además, implementanAnchorCreateResourcesExhausted
de forma correcta.
Correcciones de errores
Anchor.detach
ya no causa una falla grave debido a una condición de carrera con el subproceso de actualización de la sesión.Anchor.create
es más estable cuando se ejecuta en un emulador
Versión 1.0.0-alpha01
12 de diciembre de 2024
Lanzamiento de androidx.xr.arcore:arcore-* 1.0.0-alpha01
.
Funciones de la versión inicial
Inspirada en la biblioteca existente de ARCore, la biblioteca de ARCore para Jetpack XR proporciona capacidades para combinar contenido digital con el mundo real. Esta biblioteca incluye el seguimiento de movimiento, los anclajes persistentes, las pruebas de impacto y la identificación de planos con etiquetado semántico (por ejemplo, pisos, paredes y mesas). Consulta la guía para desarrolladores para obtener más información sobre cómo trabajar con ARCore para Jetpack XR.
Session
: ARCore para Jetpack XR usa el tiempo de ejecución de Jetpack XR de forma interna para potenciar su funcionalidad. Usarás una sesión para interactuar con la mayoría de las APIs de ARCore para Jetpack XR, así que consulta su documentación.Plane
: Usa planes para comprender el mundo que te rodea. Cada plano tiene unLabel
que lo describe semánticamente. Puedes usarsubscribe
para recibir notificaciones sobre los aviones detectados más recientes ostate
para recibir notificaciones sobre los cambios en un avión específico.Anchor
: Es un vínculo entre un objeto virtual y una ubicación del mundo real. Los anclajes se pueden unir a una ubicación específica en el espacio (concreate
) o a unTrackable
(concreateAnchor
).Los anclajes se pueden reutilizar en diferentes sesiones. Puedes usar
persist
para almacenarlos,getPersistedAnchorUuids
para enumerarlos yload
para recuperarlos. Asegúrate deunpersist
cuando ya no los uses.Los anclajes son interoperables entre ARCore para Jetpack XR y Jetpack SceneCore. Puedes crear un
AnchorEntity
con un ancla o, si tienes un AnchorEntity existente, puedes usargetAnchor
para recuperar su ancla de respaldo.Ofrece interacciones naturales del usuario con
hitTest
. Un hitTest usa unRay
para determinar con qué contenido se cruza y crear unAnchor
a partir de esa ubicación. Considera realizar una prueba de impacto desde unInputEvent
.
Errores conocidos
Es posible que haya una demora entre la llamada a
unpersist
y la eliminación de su UUID de los resultados que devuelvegetPersistedAnchorUuids
.create
no validará que el sistema tenga suficientes recursos para devolver anclajes nuevos. Crear una cantidad excesiva de anclajes puede provocar una falla.Por el momento, no se admite la persistencia de un ancla que se haya persistido y luego se haya dejado de persistir.
Se admite el uso en el emulador, pero es posible que el comportamiento no sea tan estable como cuando se ejecuta en un dispositivo real. En particular, las llamadas a
create
pueden fallar con un error de código nativo y finalizar la actividad de inmediato.En ciertas circunstancias, se puede arrojar un
RuntimeException
de forma errónea cuando se llama apersist
con el mensaje “No se conservó la ancla”. En esos casos, la función se ejecutará correctamente y se conservará la ancla. Como solución alternativa, te recomendamos que envuelvas la llamada apersist
con un bloquetry
.