ARCore para Jetpack XR

Lleva el contenido digital al mundo real con capacidades de percepción.
Actualización más reciente Versión estable Versión potencial Versión beta Versión alfa
19 de mayo de 2026 - - - 1.0.0-alpha14

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-alpha14"
}

Kotlin

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

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.

Crear un error nuevo

Consulta la documentación sobre la herramienta Issue Tracker para obtener más información.

Versión 1.0

Versión 1.0.0-alpha14

19 de mayo de 2026

Lanzamiento de androidx.xr.arcore:arcore-*:1.0.0-alpha14. La versión 1.0.0-alpha14 contiene estas confirmaciones.

Cambios en la API

  • Se dejó de usar GeospatialMode.VPS_AND_GPS en favor de GeospatialMode.SPATIAL y se introdujo un nuevo modo de monitoreo de menor consumo, GeospatialMode.INERTIAL, que solo usa la IMU y el GPS. (I1e6cd)
  • Clases de excepción de anclaje personalizadas: AnchorInvalidUuidException, AnchorNotAuthorizedException, AnchorUnsupportedLocationException, AnchorRuntimeFailureException y AnchorUnsupportedObjectException ahora son instancias de RuntimeException y no están diseñadas para verificarse. (I9356e)
  • Se agregó la API de ArCoreTestRule, incluidos TestArDevice, TestAugmentableObject, TestDepthMap, TestEye, TestFace, TestGeospatial, TestHand, TestPlane, TestRenderViewpoint y TestTrackable (I0ad3c)
  • Se quitan AnchorLoadInvalidUuid, AnchorCreateUnsupportedObject, AnchorCreateUnsupportedLocation y AnchorCreateNotAuthorized. Todos estos errores ahora son excepciones en el tiempo de ejecución. Quita AnchorCreateIllegalState. En la mayoría de los casos, se reemplazó por AnchorCreateTrackingUnavailable. Se agregaron AnchorException y las clases derivadas AnchorInvalidUuidException, AnchorNotAuthorizedException, AnchorUnsupportedLocationException, AnchorRuntimeFailureException y AnchorUnsupportedObjectException. (I4c4dd)

Errores conocidos

  • Es posible que se pierda el seguimiento geoespacial en situaciones de conectividad difíciles cuando se usa la implementación del tiempo de ejecución de arcore-projected. Quitar esta implementación del tiempo de ejecución de tu aplicación y usar arcore-play-services en su lugar debería solucionar el problema. Esta será la configuración predeterminada en la próxima versión.

Contribución externa

  • Se agregó la API de AugmentedImage para el seguimiento de marcadores personalizados (I0cf09).

Versión 1.0.0-alpha13

6 de mayo de 2026

Lanzamiento de androidx.xr.arcore:arcore-*:1.0.0-alpha13. La versión 1.0.0-alpha13 contiene estas confirmaciones.

Cambios en la API

  • TrackingState y VpsAvailabilityResult se movieron a androidx.xr.arcore package, y los tipos en androidx.xr.runtime ahora están obsoletos. (Ic7930, b/480462213)
  • Se cambió el nombre de Plane.Type a PlaneType. (I8c90c, b/482675376)
  • Se cambió el nombre de Hand.HandSide a HandSide. (Ica562, b/482675376)
  • Se cambió el nombre de Plane.Label a PlaneLabel. (Ic6b67, b/482675376)
  • Se cambió el nombre de Geospatial.Surface a GeospatialSurface. (I1a8be, b/482675376)
  • Se cambió el nombre de Geospatial.State a GeospatialState. (I203fa, b/482675376)
  • Se trasladó la API de NativeData a la biblioteca de xr:runtime:runtime. (I87954, b/494251500)
  • Session.create y Session.configure ahora no son exhaustivos y requieren cláusulas else en las instrucciones when. (I9885e, b/495805998, b/495805998)
  • androidx.xr.runtime.FieldOfView quedó obsoleto. Se usa androidx.xr.runtime.math.FieldOfView en su lugar. (Ia01a0, b/480233045)
  • Se cambió Orbiter para que use un OrbiterAnchorPoint + VolumeOffset o un OrbiterPoseProvider en lugar de posición, desplazamiento, offsetType, alineación y elevación. También se quitó el parámetro shouldRenderInNonSpatial. Si el desarrollador no quiere que el orbitador se renderice en un espacio no espacial, debe incluirlo en una instrucción if y verificar SpatialCapabilities. (I9fbb3, b/462428503)
  • Se agregaron modificadores móviles. Por el momento, estos modificadores funcionan bien para SpatialPanels y SpatialExternalSurface. Muy pronto, también se admitirán en SpatialGltfModels. Sin embargo, la intención es que se admitan bien para todos los SubspaceComposables. (I9a3cd, b/479530787, b/478935063, b/478935063)
  • Se espera que los desarrolladores observen el flujo de ArDevice.state para supervisar State.trackingState y ajustar la renderización o las advertencias de su aplicación según la fidelidad del seguimiento. (Ic00f0, b/445466590)
  • Se cambió el nombre de los valores de enumeración HandJointType. (Ifbc83, b/482670596)
  • Se cambió el nombre de las constantes FaceConfidenceRegion. (Ia62d5, b/482670596)
  • Se cambió el nombre de las constantes FaceBlendShapeType. (I33b8b, b/482670596)
  • Se agregaron CreatePoseFromGeospatialPoseErrorInternal y CreateGeospatialPoseFromPoseErrorInternal. (I4bcf1, b/482666615)
  • Se cambió el nombre de DeviceTrackingMode.LAST_KNOWN a SPATIAL_LAST_KNOWN (con un resguardo en desuso), se agregó INERTIAL_LAST_KNOWN para el seguimiento de 3DoF y se agregó TRACKING_DEGRADED a TrackingState. (Ie661c, b/445466590)
  • GroupEntity quedó obsoleto. Para tener una entidad solo con la funcionalidad básica de Entity, llama a Entity.create, que devolverá una interfaz de Entity. (I4c450, b/473867483)
  • Se agregó la API de XrLog. Configura XrLog.isEnableden true para habilitar el registro en JetpackXR y usa XrLog.Level para establecer el nivel de registro. (I76a1f, b/463460895, b/487378441)

Correcciones de errores

  • Se agregó compatibilidad con el estado de seguimiento del dispositivo a los dispositivos OpenXR. (I91485, b/445466590)

Versión 1.0.0-alpha12

25 de marzo de 2026

Lanzamiento de androidx.xr.arcore:arcore-*:1.0.0-alpha12. La versión 1.0.0-alpha12 contiene estas confirmaciones.

Cambios en la API

  • Se cambió Config.augmentedObjectCategories de una lista a un conjunto. (I25a64, b/487376359)
  • Los tipos androidx.xr.arcore.Eye y androidx.xr.arcore.Hand. (I42438, b/449032900)
  • Se agregó la sobrecarga Session.create para permitir el paso de un Contexto de Android para el alcance de recursos. (I7d3fe, b/415805990, b/477386334)
  • Cambia FakeRuntimeAnchor.ANCHOR_RESOURCE_LIMIT a FakeRuntimeAnchor.anchorResourceLimit. (I90841, b/431992235)
  • Se marcó la API de TiltGesture como experimental, ya que podría cambiar o quitarse en el futuro. Para usar esta API, habilita @ExperimentalGesturesApi (Ic9858).
  • Se agregó la capacidad de establecer categorías para el seguimiento de AugmentedObject en la configuración (I1f6e4, b/480220930).

Correcciones de errores

  • Se corrigió la compilación de Chrome actualizando el archivo META-INF/services/ con la ubicación real de PerceptionRuntimeFactory. (I7a801, b/481288291)

Versión 1.0.0-alpha11

25 de febrero de 2026

Lanzamiento de androidx.xr.arcore:arcore-*:1.0.0-alpha11. La versión 1.0.0-alpha11 contiene estas confirmaciones.

Versión 1.0.0-alpha10

28 de enero de 2026

Lanzamiento de androidx.xr.arcore:arcore-*:1.0.0-alpha10. La versión 1.0.0-alpha10 contiene estas confirmaciones.

Nuevas funciones

  • Se introduce la API de TiltGesture, que proporciona un Flow reactivo para la detección estable del estado de inclinación del dispositivo (ARRIBA/ABAJO) con progreso de transición. (Ic269f, b/448152779)
  • ARCore para Jetpack XR ahora usa el mecanismo de registro del tiempo de ejecución de XR. Consulta androidx.xr.runtime.Log para obtener más información. (l52735, b/448697662)

Cambios en la API

  • Geospatial.createPoseFromGeospatialPose ahora funciona en dispositivos habilitados para OpenXR. (l362c6)

Versión 1.0.0-alpha09

3 de diciembre de 2025

Lanzamiento de androidx.xr.arcore:arcore-*:1.0.0-alpha09. La versión 1.0.0-alpha09 contiene estas confirmaciones.

Versión 1.0.0-alpha08

19 de noviembre de 2025

Lanzamiento de androidx.xr.arcore:arcore-*:1.0.0-alpha08. La versión 1.0.0-alpha08 contiene estas confirmaciones.

Nuevas funciones

  • ARCore para Jetpack XR ahora admite dispositivos en los que están disponibles los Servicios de Google Play para RA.
  • Se agregaron las APIs de Geospatial para la disponibilidad del VPS y la conversión de la posición (I144dc).

Versión 1.0.0-alpha07

22 de octubre de 2025

Lanzamiento de androidx.xr.arcore:arcore-*:1.0.0-alpha07. La versión 1.0.0-alpha07 contiene estas confirmaciones.

Correcciones de errores

  • Se agregó :xr:arcore:arcore-openxr como dependencia de implementación a :xr:arcore:arcore (I47315, b/446999229).

Versión 1.0.0-alpha06

24 de septiembre de 2025

Lanzamiento de androidx.xr.arcore:arcore-*:1.0.0-alpha06. La versión 1.0.0-alpha06 contiene estas confirmaciones.

Cambios en la API

  • La compatibilidad con las pruebas de ARCore se migró al módulo xr:arcore:arcore-testing. (I25469)
  • Se agregaron ArDevice y RenderViewpoint para permitir que las aplicaciones recuperen la postura del dispositivo y la configuración de pantalla para fines de renderización. (Ib7e3f)
  • Se cambió el nombre de los enums HandJointType con el prefijo HAND_JOINT_TYPE_. (I3f7cd)
  • Se movió HandJointType de xr:runtime:runtime a xr:arcore:arcore. (Iadb9c, b/409058039)
  • Hand.State ahora expone un java.nio.FloatBuffer con las poses conjuntas en un formato que permite un acceso fácil a las aplicaciones orientadas al rendimiento. (I55e27)

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 biblioteca xr:arcore:arcore-guava para acceder a las APIs compatibles. (Iffcb4, b/422773524)
  • Se agregó Anchor.persistAsync() a AnchorGuava para que lo usen los desarrolladores de Java. (I4af1c, b/425984631)
  • Se agregó Earth.createAnchorOnSurfaceAsync(Session, Double, Double, Double, Quaternion, Surface) a EarthGuava 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 en GltfModel.kt. Se borrarán las funciones asíncronas en GltfModel. (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 y HandJointType se movieron de ARCore a Runtime.
  • Se cambió Hand.State.isActive (boolean) por Hand.State.trackingState (androidx.xr.runtime.TrackingState).
  • Anchor.load devuelve Anchor.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 y Hand.right para acceder a la información de seguimiento.
  • Las APIs que generan un ancla (Anchor.create, Anchor.load, Plane.createAnchor) ahora devuelven AnchorCreateResult y, además, implementan AnchorCreateResourcesExhausted 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 un Label que lo describe semánticamente. Puedes usar subscribe para recibir notificaciones sobre los aviones detectados más recientemente o state 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 (con create) o a un Trackable (con createAnchor).

    • Los anclajes se pueden reutilizar en diferentes sesiones. Puedes usar persist para almacenarlos, getPersistedAnchorUuids para enumerarlos y load para recuperarlos. Asegúrate de unpersist 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 usar getAnchor para recuperar su ancla de respaldo.

    • Ofrece interacciones naturales del usuario con hitTest. Un hitTest usa un Ray para determinar con qué contenido se cruza y crear un Anchor a partir de esa ubicación. Considera realizar una prueba de impacto desde un InputEvent.

Errores conocidos

  • Es posible que haya una demora entre la llamada a unpersist y la eliminación de su UUID de los resultados que devuelve getPersistedAnchorUuids.

  • 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 no persistido anteriormente.

  • 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 podrían 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 a persist con el mensaje “No se conservó la ancla”. En esos casos, la función seguirá teniendo éxito y se conservará la ancla. Como solución alternativa, te recomendamos que envuelvas la llamada a persist con un bloque try.