ARCore для Jetpack XR

Внедрите цифровой контент в реальный мир с помощью возможностей визуального восприятия.
Последнее обновление Стабильный релиз Предварительная версия релиза Бета-версия Альфа-версия
9 сентября 2026 г. - 1.0.0-rc01 - -

Объявление зависимостей

Чтобы добавить зависимость от ARCore для Jetpack XR, необходимо добавить репозиторий Google Maven в ваш проект. Для получения дополнительной информации ознакомьтесь с информацией в репозитории Google Maven .

Добавьте зависимости для необходимых артефактов в файл build.gradle вашего приложения или модуля:

классный

dependencies {
    implementation "androidx.xr.arcore:arcore:1.0.0-rc01"
}

Котлин

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

Для получения дополнительной информации о зависимостях см. раздел «Добавление зависимостей сборки» .

Обратная связь

Ваши отзывы помогают улучшить Jetpack. Сообщите нам, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете проголосовать за существующую проблему, нажав кнопку со звездочкой.

Создать новую задачу

Для получения более подробной информации см. документацию по системе отслеживания ошибок .

Версия 1.0

Версия 1.0.0-rc01

9 сентября 2026 г.

Выпущена версия androidx.xr.arcore:arcore-*:1.0.0-rc01 . Версия 1.0.0-rc01 содержит следующие коммиты .

Версия 1.0.0-beta02

12 августа 2026 г.

Выпущена версия androidx.xr.arcore:arcore-*:1.0.0-beta02 . Версия 1.0.0-beta02 содержит следующие коммиты .

Исправлены ошибки

  • Исправлена ​​проблема параллельного доступа при сохранении привязки OpenXR . ( I15c8b )
  • Для отладки реализована toString() в большем количестве классов. ( I587e8 )

Версия 1.0.0-beta01

15 июля 2026 г.

Выпущена версия androidx.xr.arcore:arcore-*:1.0.0-beta01 . Версия 1.0.0-beta01 содержит следующие коммиты .

Изменения в API

  • Обновлен модификатор resizeable: теперь вместо двух модификаторов используется ResizePolicy ( I7fb0f , b/496257436 , b/519672992 ).
  • Добавлена ​​перегрузка метода movable с параметром movePolicy , а transformingMovable и movable объявлены устаревшими ( Ic88c1 , b/481781189 ).
  • Удалён TrackingState .TRACKING_DEGRADED из публичного API, вместо него сопоставляются ухудшенные состояния во время выполнения с PAUSED. Обновлён TrackingState , чтобы использовать перечисления вместо целочисленных значений для преобразования строк и преобразования во время выполнения. ( I3eb5b , b/524326338 )
  • Функция Session.create преобразована в функцию приостановки. ( I5d27f )
  • Устаревший контракт ProjectedPermissionsResultContract ( I141d5 , b/515699436 )
  • AnchorEntity был переименован в AnchorSpace ( Ifa95e , b/513619219 )

Версия 1.0.0-alpha15

17 июня 2026 г.

Выпущена версия androidx.xr.arcore:arcore-*:1.0.0-alpha15 . Версия 1.0.0-alpha15 содержит следующие коммиты .

Изменения в API

  • HitResult.createAnchor был удален. Разработчики могут создать якорь, представляющий результат HitResult если отслеживаемый объект результата является Anchorable , передав позицию попадания в функцию createAnchor объекта Anchorable . ( Ia851e )
  • Ошибка AnchorUnsupportedObject была удалена. Она больше не возникает в среде выполнения JXR ARCore. ( Ia851e )
  • androidx.xr.arcore.Anchor и androidx.xr.arcore.ArDevice теперь реализуют интерфейс androidx.xr.arcore.Trackable . ( I57b65 )
  • Depth.left , Depth.right и Depth.mono теперь не допускают значения null ( I1fc5e ).
  • Теперь Face.getUserFace не допускает значения null ( I0eac1 ).
  • RenderViewpoint.left , RenderViewpoint.right , RenderViewpoint.mono теперь не допускают значения null ( Icf7fa ).
  • Hand.left и Hand.right не являются ненулевыми ( Icef37 )
  • Добавлен API QrCode ( Ia0bbe ).

Версия 1.0.0-alpha14

19 мая 2026 г.

Выпущена версия androidx.xr.arcore:arcore-*:1.0.0-alpha14 . Версия 1.0.0-alpha14 содержит следующие коммиты .

Изменения в API

  • Устаревший режим GeospatialMode.VPS_AND_GPS в пользу GeospatialMode.SPATIAL и новый режим слежения с меньшим энергопотреблением, GeospatialMode.INERTIAL , использующий только IMU и GPS. ( I1e6cd )
  • Пользовательские классы исключений при привязке: AnchorInvalidUuidException , AnchorNotAuthorizedException , AnchorUnsupportedLocationException , AnchorRuntimeFailureException и AnchorUnsupportedObjectException теперь являются экземплярами RuntimeException и не предназначены для проверки. ( I9356e )
  • Добавлен API ArCoreTestRule , включая TestArDevice , TestAugmentableObject , TestDepthMap , TestEye , TestFace , TestGeospatial , TestHand , TestPlane , TestRenderViewpoint и TestTrackable ( I0ad3c ).
  • Удаляет AnchorLoadInvalidUuid , AnchorCreateUnsupportedObject , AnchorCreateUnsupportedLocation и AnchorCreateNotAuthorized . Все эти ошибки теперь являются исключениями во время выполнения. Удаляет AnchorCreateIllegalState . В большинстве случаев она заменена на AnchorCreateTrackingUnavailable . Добавляет AnchorException и производные классы AnchorInvalidUuidException , AnchorNotAuthorizedException , AnchorUnsupportedLocationException , AnchorRuntimeFailureException и AnchorUnsupportedObjectException . ( I4c4dd )

Внешний вклад

  • Добавлен API AugmentedImage для отслеживания пользовательских маркеров ( I0cf09 ).

Версия 1.0.0-alpha13

6 мая 2026 г.

Выпущена версия androidx.xr.arcore:arcore-*:1.0.0-alpha13 . Версия 1.0.0-alpha13 содержит следующие коммиты .

Изменения в API

  • TrackingState и VpsAvailabilityResult перенесены в androidx.xr.arcore package , а типы в androidx.xr.runtime теперь устарели. ( Ic7930 , b/480462213 )
  • Переименована Plane.Type в PlaneType . ( I8c90c , b/482675376 )
  • Переименовано Hand.HandSide в HandSide . ( Ica562 , b/482675376 )
  • Переименован Plane.Label в PlaneLabel . ( Ic6b67 , b/482675376 )
  • Переименован Geospatial.Surface в GeospatialSurface . ( I1a8be , b/482675376 )
  • Переименовано Geospatial.State в GeospatialState . ( I203fa , b/482675376 )
  • API NativeData перенесен в библиотеку xr:runtime:runtime . ( I87954 , b/494251500 )
  • Session.create и Session.configure теперь не являются исчерпывающими и требуют добавления else-оговорок в операторе when. ( I9885e , b/495805998 , b/495805998 )
  • androidx.xr.runtime.FieldOfView устарел. Используйте androidx.xr.runtime.math.FieldOfView вместо него. ( Ia01a0 , b/480233045 )
  • Изменено поведение Orbiter: теперь вместо position, offset, offsetType, alignment и elevation используется либо OrbiterAnchorPoint + VolumeOffset , либо OrbiterPoseProvider . Также удален параметр shouldRenderInNonSpatial . Если разработчик не хочет, чтобы Orbiter отображался в непространственном режиме, ему следует обернуть Orbiter в оператор if и проверить SpatialCapabilities . ( I9fbb3 , b/462428503 )
  • Добавлены модификаторы перемещения. В настоящее время эти модификаторы хорошо работают для SpatialPanels и SpatialExternalSurface . Очень скоро они также будут поддерживаться для SpatialGltfModels . Однако планируется обеспечить их хорошую поддержку для всех SubspaceComposables . ( I9a3cd , b/479530787 , b/478935063 , b/478935063 )
  • Разработчики должны отслеживать поток ArDevice.state , контролировать State.trackingState и соответствующим образом корректировать отображение приложения или предупреждения в зависимости от точности отслеживания. ( Ic00f0 , b/445466590 )
  • Переименованы значения перечисления HandJointType . ( Ifbc83 , b/482670596 )
  • Переименованы константы FaceConfidenceRegion . ( Ia62d5 , b/482670596 )
  • Переименованы константы FaceBlendShapeType . ( I33b8b , b/482670596 )
  • Добавлены CreatePoseFromGeospatialPoseErrorInternal и CreateGeospatialPoseFromPoseErrorInternal . ( I4bcf1 , b/482666615 )
  • Переименовано DeviceTrackingMode.LAST_KNOWN в SPATIAL_LAST_KNOWN (с устаревшим резервным вариантом), добавлено INERTIAL_LAST_KNOWN для отслеживания 3 степеней свободы и добавлено TRACKING_DEGRADED в TrackingState . ( Ie661c , b/445466590 )
  • Устаревшая GroupEntity . Чтобы получить сущность только с базовой функциональностью, вызовите Entity.create , которая вернет интерфейс сущности. ( I4c450 , b/473867483 )
  • Добавлен API XrLog . Установите XrLog.isEnabled в true , чтобы включить логирование в JetpackXR, и используйте XrLog.Level для установки уровня логирования. ( I76a1f , b/463460895 , b/487378441 )

Исправлены ошибки

  • Добавить поддержку отслеживания состояния устройства для устройств OpenXR. ( I91485 , b/445466590 )

Версия 1.0.0-alpha12

25 марта 2026 г.

Выпущена версия androidx.xr.arcore:arcore-*:1.0.0-alpha12 . Версия 1.0.0-alpha12 содержит следующие коммиты .

Изменения в API

  • Изменено значение Config.augmentedObjectCategories со списка на множество. ( I25a64 , b/487376359 )
  • Типы androidx.xr.arcore.Eye и androidx.xr.arcore.Hand . ( I42438 , b/449032900 )
  • Добавлена ​​перегрузка Session.create , позволяющая передавать контекст Android для определения области видимости ресурсов. ( I7d3fe , b/415805990 , b/477386334 )
  • Заменяет FakeRuntimeAnchor.ANCHOR_RESOURCE_LIMIT на FakeRuntimeAnchor.anchorResourceLimit . ( I90841 , b/431992235 )
  • API TiltGesture находится в экспериментальном режиме, так как в будущем он может быть изменен или удален. Чтобы использовать этот API, подпишитесь на @ExperimentalGesturesApi ( Ic9858 ).
  • Добавлена ​​возможность устанавливать категории для отслеживания AugmentedObject в конфигурации ( I1f6e4 , b/480220930 )

Исправлены ошибки

  • Исправлена ​​сборка Chrome путем обновления файла META-INF/services/ с указанием фактического местоположения PerceptionRuntimeFactory . ( I7a801 , b/481288291 )

Версия 1.0.0-alpha11

25 февраля 2026 г.

Выпущена версия androidx.xr.arcore:arcore-*:1.0.0-alpha11 . Версия 1.0.0-alpha11 содержит следующие коммиты .

Версия 1.0.0-alpha10

28 января 2026 г.

Выпущена версия androidx.xr.arcore:arcore-*:1.0.0-alpha10 . Версия 1.0.0-alpha10 содержит следующие коммиты .

Новые функции

  • Представляет API TiltGesture , обеспечивающий реактивный Flow для стабильного определения состояния наклона устройства (ВВЕРХ/ВНИЗ) с отслеживанием процесса перехода. ( Ic269f , b/448152779 )
  • ARCore для Jetpack XR теперь использует механизм логирования XR Runtime Logging. Дополнительную информацию см. в файле androidx.xr.runtime.Log . ( l52735 , b/448697662 )

Изменения в API

  • Geospatial.createPoseFromGeospatialPose теперь работает на устройствах с поддержкой OpenXR. ( l362c6 )

Версия 1.0.0-alpha09

3 декабря 2025 г.

Выпущена версия androidx.xr.arcore:arcore-*:1.0.0-alpha09 . Версия 1.0.0-alpha09 содержит следующие коммиты .

Версия 1.0.0-alpha08

19 ноября 2025 г.

Выпущена версия androidx.xr.arcore:arcore-*:1.0.0-alpha08 . Версия 1.0.0-alpha08 содержит следующие коммиты .

Новые функции

  • Теперь ARCore для Jetpack XR поддерживает устройства, на которых доступны сервисы Google Play для дополненной реальности.
  • Добавлены геопространственные API для проверки доступности VPS и преобразования положения ( I144dc )

Версия 1.0.0-alpha07

22 октября 2025 г.

Выпущена версия androidx.xr.arcore:arcore-*:1.0.0-alpha07 . Версия 1.0.0-alpha07 содержит следующие коммиты .

Исправлены ошибки

  • :xr:arcore:arcore-openxr добавлен в качестве зависимости реализации к :xr:arcore:arcore ( I47315 , b/446999229 )

Версия 1.0.0-alpha06

24 сентября 2025 г.

Выпущена версия androidx.xr.arcore:arcore-*:1.0.0-alpha06 . Версия 1.0.0-alpha06 содержит следующие коммиты .

Изменения в API

  • Поддержка тестирования ARCore перенесена в модуль xr:arcore:arcore-testing . ( I25469 )
  • Добавление ArDevice и RenderViewpoint , позволяющих приложениям получать положение устройства и конфигурацию дисплея для целей рендеринга. ( Ib7e3f )
  • Переименуйте перечисления HandJointType , добавив префикс HAND_JOINT_TYPE_ . ( I3f7cd )
  • HandJointType перемещен из xr: xr:runtime:runtime xr:arcore:arcore . ( Iadb9c , b/409058039 )
  • Теперь Hand.State предоставляет объект java.nio.FloatBuffer с данными о положении суставов в формате, обеспечивающем легкий доступ для приложений, ориентированных на производительность. ( I55e27 )

Версия 1.0.0-alpha05

30 июля 2025 г.

Выпущены androidx.xr.arcore:arcore:1.0.0-alpha05 , androidx.xr.arcore:arcore-guava:1.0.0-alpha05 и androidx.xr.arcore:arcore-rxjava3:1.0.0-alpha05 . Версия 1.0.0-alpha05 содержит следующие коммиты .

Новые функции

  • Добавьте getPrimaryHandSide , чтобы разработчик мог получить информацию о положении руки ( I270bd ).
  • Добавить API для проверки доступности VPS с использованием геопространственных данных ( I58573 )
  • Добавить API ARCore для checkVpsAvailability ( Idbded ).
  • В пакет :xr:arcore:arcore-rxjava3 добавлены функции расширения stateFlowable для использования Java-разработчиками. ( I083aa , b/427247794 )

Изменения в API

  • Значения параметров Config *Mode были переименованы в соответствии с их поведением. ( I6d247 , b/414648065 )
  • Основной артефакт ARCore (xr:arcore:arcore) будет содержать только асинхронные API в стиле Kotlin. Java-разработчики могут использовать библиотеку xr:arcore:arcore-rxjava3 для доступа к совместимым API. ( Ia525e , b/422794329 )
  • Основной артефакт ARCore ( xr:scenecore:scenecore ) будет содержать только асинхронные API в стиле Kotlin. Java-разработчики могут использовать библиотеку xr:arcore:arcore-guava для доступа к совместимым API. ( Iffcb4 , b/422773524 )
  • В AnchorGuava добавлена Anchor.persistAsync() для использования Java-разработчиками. ( I4af1c , b/425984631 )
  • Earth.createAnchorOnSurfaceAsync(Session, Double, Double, Double, Quaternion, Surface) добавлен в EarthGuava для использования Java-разработчиками. ( I66357 , b/425992992 )
  • Java-разработчики будут использовать функции расширения для GltfModel.createAsync в GltfModel.kt . Асинхронные функции в GltfModel будут удалены. ( I0af60 )
  • В этой библиотеке теперь используются аннотации JSpecify для проверки на null , которые относятся к использованию типов. Разработчикам Kotlin следует использовать следующий аргумент компилятора для обеспечения корректного использования: -Xjspecify-annotations=strict (это значение по умолчанию, начиная с версии 2.1.0 компилятора Kotlin) ( Ia8420 , b/326456246 )
  • subscribeAsFlowable extension functions added to :xr:arcore:arcore-rxjava3 for usage by Java developers. ( Id3e49 , b/427277298 )

Версия 1.0.0-alpha04

7 мая 2025 г.

Выпущена версия androidx.xr.arcore:arcore:1.0.0-alpha04 . Версия 1.0.0-alpha04 содержит следующие коммиты .

Изменения в API

  • Для использования проектов, выпущенных с Kotlin 2.0, требуется KGP 2.0.0 или более поздняя версия. ( Idb6b5 )
  • TrackingState и HandJointType перенесены из ARCore в Runtime.
  • Hand.State.isActive (boolean) изменено на Hand.State.trackingState (androidx.xr.runtime.TrackingState) .
  • Anchor.load возвращает Anchor.AnchorLoadInvalidUuid , если UUID недействителен.

Версия 1.0.0-alpha03

26 февраля 2025 г.

Выпущена версия androidx.xr.arcore:arcore:1.0.0-alpha03 без существенных изменений по сравнению с предыдущей альфа-версией. Версия 1.0.0-alpha03 содержит следующие коммиты .

Версия 1.0.0-alpha02

12 февраля 2025 г.

Выпущена версия androidx.xr.arcore:arcore:1.0.0-alpha02 . Версия 1.0.0-alpha02 содержит следующие коммиты .

Новые функции

  • Добавлена ​​поддержка отслеживания движений рук. Используйте Hand.left и Hand.right для доступа к информации об отслеживании.
  • Теперь все API-интерфейсы, генерирующие якорь ( Anchor.create , Anchor.load , Plane.createAnchor ), возвращают AnchorCreateResult и корректно реализуют AnchorCreateResourcesExhausted .

Исправлены ошибки

  • Anchor.detach больше не приводит к фатальному сбою из-за состояния гонки в потоке обновления сессии.
  • Anchor.create работает более стабильно при запуске на эмуляторе.

Версия 1.0.0-alpha01

12 декабря 2024 г.

Выпущена версия androidx.xr.arcore:arcore-* 1.0.0-alpha01 .

Особенности первоначального выпуска

Созданная по образцу существующей библиотеки ARCore, библиотека ARCore для Jetpack XR предоставляет возможности для интеграции цифрового контента с реальным миром. Эта библиотека включает в себя отслеживание движения, постоянные привязки, проверку попаданий и идентификацию плоскостей с семантической маркировкой (например, пол, стены и столешницы). Для получения дополнительной информации о работе с ARCore для Jetpack XR ознакомьтесь с руководством для разработчиков .

  • Session : ARCore для Jetpack XR использует среду выполнения Jetpack XR для обеспечения своей функциональности. Для взаимодействия с большинством API ARCore для Jetpack XR вы будете использовать сессию, поэтому, пожалуйста, ознакомьтесь с документацией.

  • Plane : Используйте самолеты, чтобы понять окружающий мир. Каждый самолет имеет Label , которая описывает его семантически. Вы можете использовать subscribe , чтобы получать уведомления о последних обнаруженных самолетах, или state , чтобы получать уведомления об изменениях в конкретном самолете.

  • Anchor : связь между виртуальным объектом и реальным местоположением. Якоря могут быть прикреплены к определенному месту в пространстве (с помощью create ) или к Trackable (с помощью createAnchor ).

    • Якоря можно использовать повторно в разных сессиях. Для их хранения можно использовать persist , для их перечисления — getPersistedAnchorUuids , а для их извлечения load . Обязательно unpersist их из списка, когда они больше не используются.

    • Якоря совместимы между ARCore для Jetpack XR и Jetpack SceneCore. Вы можете создать AnchorEntity используя якорь, или, если у вас уже есть AnchorEntity, вы можете использовать getAnchor для получения его базового якоря.

    • Обеспечьте естественное взаимодействие с пользователем, используя hitTest . hitTest использует Ray для определения того, с каким содержимым он пересекается, и для создания Anchor в этом месте. Рассмотрите возможность проведения hitTest из InputEvent .

Известные проблемы

  • Между вызовом функции unpersist и удалением её UUID из результатов, возвращаемых функцией getPersistedAnchorUuids , может возникнуть задержка.

  • create не проверит, достаточно ли у системы ресурсов для возврата новых якорей. Создание чрезмерного количества якорей может привести к сбою.

  • Сохранение ранее сохраненного и затем удаленного якоря в настоящее время не поддерживается.

  • Использование в эмуляторе поддерживается, но поведение может быть не таким стабильным, как при работе на реальном устройстве. В частности, вызовы функции create могут завершиться ошибкой в ​​нативном коде и немедленно прекратить выполнение активности.

  • В некоторых случаях при вызове функции persist может быть ошибочно выброшено RuntimeException с сообщением «Якорь не был сохранен». В таких обстоятельствах функция все равно будет выполнена успешно, и якорь будет сохранен. В качестве обходного пути мы рекомендуем обернуть вызов функции persist блоком try .

,

ARCore для Jetpack XR

Bring digital content into the real world with perception capabilities.
Последнее обновление Стабильный релиз Предварительная версия релиза Бета-версия Альфа-версия
9 сентября 2026 г. - 1.0.0-rc01 - -

Объявление зависимостей

Чтобы добавить зависимость от ARCore для Jetpack XR, необходимо добавить репозиторий Google Maven в ваш проект. Для получения дополнительной информации ознакомьтесь с информацией в репозитории Google Maven .

Add the dependencies for the artifacts you need in the build.gradle file for your app or module:

классный

dependencies {
    implementation "androidx.xr.arcore:arcore:1.0.0-rc01"
}

Котлин

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

Для получения дополнительной информации о зависимостях см. раздел «Добавление зависимостей сборки» .

Обратная связь

Ваши отзывы помогают улучшить Jetpack. Сообщите нам, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете проголосовать за существующую проблему, нажав кнопку со звездочкой.

Создать новую задачу

Для получения более подробной информации см. документацию по системе отслеживания ошибок .

Версия 1.0

Версия 1.0.0-rc01

9 сентября 2026 г.

androidx.xr.arcore:arcore-*:1.0.0-rc01 is released. Version 1.0.0-rc01 contains these commits .

Версия 1.0.0-beta02

12 августа 2026 г.

Выпущена версия androidx.xr.arcore:arcore-*:1.0.0-beta02 . Версия 1.0.0-beta02 содержит следующие коммиты .

Исправлены ошибки

  • Исправлена ​​проблема параллельного доступа при сохранении привязки OpenXR . ( I15c8b )
  • Для отладки реализована toString() в большем количестве классов. ( I587e8 )

Версия 1.0.0-beta01

15 июля 2026 г.

androidx.xr.arcore:arcore-*:1.0.0-beta01 is released. Version 1.0.0-beta01 contains these commits .

Изменения в API

  • Обновлен модификатор resizeable: теперь вместо двух модификаторов используется ResizePolicy ( I7fb0f , b/496257436 , b/519672992 ).
  • Added movable overload with movePolicy param and deprecate transformingMovable and movable ( Ic88c1 , b/481781189 )
  • Удалён TrackingState .TRACKING_DEGRADED из публичного API, вместо него сопоставляются ухудшенные состояния во время выполнения с PAUSED. Обновлён TrackingState , чтобы использовать перечисления вместо целочисленных значений для преобразования строк и преобразования во время выполнения. ( I3eb5b , b/524326338 )
  • Функция Session.create преобразована в функцию приостановки. ( I5d27f )
  • Устаревший контракт ProjectedPermissionsResultContract ( I141d5 , b/515699436 )
  • AnchorEntity был переименован в AnchorSpace ( Ifa95e , b/513619219 )

Версия 1.0.0-alpha15

17 июня 2026 г.

Выпущена версия androidx.xr.arcore:arcore-*:1.0.0-alpha15 . Версия 1.0.0-alpha15 содержит следующие коммиты .

Изменения в API

  • HitResult.createAnchor был удален. Разработчики могут создать якорь, представляющий результат HitResult если отслеживаемый объект результата является Anchorable , передав позицию попадания в функцию createAnchor объекта Anchorable . ( Ia851e )
  • AnchorUnsupportedObject was removed. It is no longer thrown by a JXR ARCore runtime. ( Ia851e )
  • androidx.xr.arcore.Anchor и androidx.xr.arcore.ArDevice теперь реализуют интерфейс androidx.xr.arcore.Trackable . ( I57b65 )
  • Depth.left , Depth.right и Depth.mono теперь не допускают значения null ( I1fc5e ).
  • Теперь Face.getUserFace не допускает значения null ( I0eac1 ).
  • RenderViewpoint.left , RenderViewpoint.right , RenderViewpoint.mono are now non-nullable ( Icf7fa )
  • Hand.left и Hand.right не являются ненулевыми ( Icef37 )
  • Добавлен API QrCode ( Ia0bbe ).

Версия 1.0.0-alpha14

19 мая 2026 г.

androidx.xr.arcore:arcore-*:1.0.0-alpha14 is released. Version 1.0.0-alpha14 contains these commits .

Изменения в API

  • Deprecating GeospatialMode.VPS_AND_GPS in favor of GeospatialMode.SPATIAL and introducing a new lower-power tracking mode, GeospatialMode.INERTIAL , which uses only IMU and GPS. ( I1e6cd )
  • Пользовательские классы исключений при привязке: AnchorInvalidUuidException , AnchorNotAuthorizedException , AnchorUnsupportedLocationException , AnchorRuntimeFailureException и AnchorUnsupportedObjectException теперь являются экземплярами RuntimeException и не предназначены для проверки. ( I9356e )
  • Добавлен API ArCoreTestRule , включая TestArDevice , TestAugmentableObject , TestDepthMap , TestEye , TestFace , TestGeospatial , TestHand , TestPlane , TestRenderViewpoint и TestTrackable ( I0ad3c ).
  • Удаляет AnchorLoadInvalidUuid , AnchorCreateUnsupportedObject , AnchorCreateUnsupportedLocation и AnchorCreateNotAuthorized . Все эти ошибки теперь являются исключениями во время выполнения. Удаляет AnchorCreateIllegalState . В большинстве случаев она заменена на AnchorCreateTrackingUnavailable . Добавляет AnchorException и производные классы AnchorInvalidUuidException , AnchorNotAuthorizedException , AnchorUnsupportedLocationException , AnchorRuntimeFailureException и AnchorUnsupportedObjectException . ( I4c4dd )

Внешний вклад

  • Added AugmentedImage API for custom marker tracking ( I0cf09 )

Версия 1.0.0-alpha13

6 мая 2026 г.

androidx.xr.arcore:arcore-*:1.0.0-alpha13 is released. Version 1.0.0-alpha13 contains these commits .

Изменения в API

  • TrackingState and VpsAvailabilityResult have moved to the androidx.xr.arcore package , and the types in androidx.xr.runtime are now deprecated. ( Ic7930 , b/480462213 )
  • Переименована Plane.Type в PlaneType . ( I8c90c , b/482675376 )
  • Renamed Hand.HandSide to HandSide . ( Ica562 , b/482675376 )
  • Renamed Plane.Label to PlaneLabel . ( Ic6b67 , b/482675376 )
  • Renamed Geospatial.Surface to GeospatialSurface . ( I1a8be , b/482675376 )
  • Renamed Geospatial.State to GeospatialState . ( I203fa , b/482675376 )
  • Moved NativeData API to xr:runtime:runtime library. ( I87954 , b/494251500 )
  • Session.create and Session.configure are now non-exhaustive and require else clauses in when statements. ( I9885e , b/495805998 , b/495805998 )
  • androidx.xr.runtime.FieldOfView устарел. Используйте androidx.xr.runtime.math.FieldOfView вместо него. ( Ia01a0 , b/480233045 )
  • Изменено поведение Orbiter: теперь вместо position, offset, offsetType, alignment и elevation используется либо OrbiterAnchorPoint + VolumeOffset , либо OrbiterPoseProvider . Также удален параметр shouldRenderInNonSpatial . Если разработчик не хочет, чтобы Orbiter отображался в непространственном режиме, ему следует обернуть Orbiter в оператор if и проверить SpatialCapabilities . ( I9fbb3 , b/462428503 )
  • Добавлены модификаторы перемещения. В настоящее время эти модификаторы хорошо работают для SpatialPanels и SpatialExternalSurface . Очень скоро они также будут поддерживаться для SpatialGltfModels . Однако планируется обеспечить их хорошую поддержку для всех SubspaceComposables . ( I9a3cd , b/479530787 , b/478935063 , b/478935063 )
  • Разработчики должны отслеживать поток ArDevice.state , контролировать State.trackingState и соответствующим образом корректировать отображение приложения или предупреждения в зависимости от точности отслеживания. ( Ic00f0 , b/445466590 )
  • Переименованы значения перечисления HandJointType . ( Ifbc83 , b/482670596 )
  • Renamed FaceConfidenceRegion constants. ( Ia62d5 , b/482670596 )
  • Renamed FaceBlendShapeType constants. ( I33b8b , b/482670596 )
  • Добавлены CreatePoseFromGeospatialPoseErrorInternal и CreateGeospatialPoseFromPoseErrorInternal . ( I4bcf1 , b/482666615 )
  • Переименовано DeviceTrackingMode.LAST_KNOWN в SPATIAL_LAST_KNOWN (с устаревшим резервным вариантом), добавлено INERTIAL_LAST_KNOWN для отслеживания 3 степеней свободы и добавлено TRACKING_DEGRADED в TrackingState . ( Ie661c , b/445466590 )
  • Устаревшая GroupEntity . Чтобы получить сущность только с базовой функциональностью, вызовите Entity.create , которая вернет интерфейс сущности. ( I4c450 , b/473867483 )
  • Added XrLog API. Set XrLog.isEnabled to true to enable logging in JetpackXR, and use XrLog.Level to set the log level. ( I76a1f , b/463460895 , b/487378441 )

Исправлены ошибки

  • Add the device tracking state support to the openxr devices. ( I91485 , b/445466590 )

Версия 1.0.0-alpha12

25 марта 2026 г.

Выпущена версия androidx.xr.arcore:arcore-*:1.0.0-alpha12 . Версия 1.0.0-alpha12 содержит следующие коммиты .

Изменения в API

  • Изменено значение Config.augmentedObjectCategories со списка на множество. ( I25a64 , b/487376359 )
  • Типы androidx.xr.arcore.Eye и androidx.xr.arcore.Hand . ( I42438 , b/449032900 )
  • Added Session.create overload to allow passing an Android Context for resource-scoping. ( I7d3fe , b/415805990 , b/477386334 )
  • Changes FakeRuntimeAnchor.ANCHOR_RESOURCE_LIMIT to FakeRuntimeAnchor.anchorResourceLimit . ( I90841 , b/431992235 )
  • API TiltGesture находится в экспериментальном режиме, так как в будущем он может быть изменен или удален. Чтобы использовать этот API, подпишитесь на @ExperimentalGesturesApi ( Ic9858 ).
  • Added ability to set categories for AugmentedObject tracking in the Config ( I1f6e4 , b/480220930 )

Исправлены ошибки

  • Исправлена ​​сборка Chrome путем обновления файла META-INF/services/ с указанием фактического местоположения PerceptionRuntimeFactory . ( I7a801 , b/481288291 )

Версия 1.0.0-alpha11

25 февраля 2026 г.

Выпущена версия androidx.xr.arcore:arcore-*:1.0.0-alpha11 . Версия 1.0.0-alpha11 содержит следующие коммиты .

Версия 1.0.0-alpha10

28 января 2026 г.

androidx.xr.arcore:arcore-*:1.0.0-alpha10 is released. Version 1.0.0-alpha10 contains these commits .

Новые функции

  • Introduces TiltGesture API, providing a reactive Flow for stable detection of device tilt (UP/DOWN) state with transition progress. ( Ic269f , b/448152779 )
  • ARCore для Jetpack XR теперь использует механизм логирования XR Runtime Logging. Дополнительную информацию см. в androidx.xr.runtime.Log . ( l52735 , b/448697662 )

Изменения в API

  • Geospatial.createPoseFromGeospatialPose now works on OpenXR-enabled devices. ( l362c6 )

Версия 1.0.0-alpha09

3 декабря 2025 г.

Выпущена версия androidx.xr.arcore:arcore-*:1.0.0-alpha09 . Версия 1.0.0-alpha09 содержит следующие коммиты .

Версия 1.0.0-alpha08

19 ноября 2025 г.

Выпущена версия androidx.xr.arcore:arcore-*:1.0.0-alpha08 . Версия 1.0.0-alpha08 содержит следующие коммиты .

Новые функции

  • Теперь ARCore для Jetpack XR поддерживает устройства, на которых доступны сервисы Google Play для дополненной реальности.
  • Добавлены геопространственные API для проверки доступности VPS и преобразования положения ( I144dc )

Версия 1.0.0-alpha07

22 октября 2025 г.

Выпущена версия androidx.xr.arcore:arcore-*:1.0.0-alpha07 . Версия 1.0.0-alpha07 содержит следующие коммиты .

Исправлены ошибки

  • :xr:arcore:arcore-openxr добавлен в качестве зависимости реализации к :xr:arcore:arcore ( I47315 , b/446999229 )

Версия 1.0.0-alpha06

24 сентября 2025 г.

Выпущена версия androidx.xr.arcore:arcore-*:1.0.0-alpha06 . Версия 1.0.0-alpha06 содержит следующие коммиты .

Изменения в API

  • Testing support for ARCore has migrated to the xr:arcore:arcore-testing module. ( I25469 )
  • Добавление ArDevice и RenderViewpoint , позволяющих приложениям получать положение устройства и конфигурацию дисплея для целей рендеринга. ( Ib7e3f )
  • Переименуйте перечисления HandJointType , добавив префикс HAND_JOINT_TYPE_ . ( I3f7cd )
  • HandJointType перемещен из xr: xr:runtime:runtime xr:arcore:arcore . ( Iadb9c , b/409058039 )
  • Hand.State now exposes a java.nio.FloatBuffer with the joint poses in a format that allows easy access to performance-oriented applications. ( I55e27 )

Версия 1.0.0-alpha05

30 июля 2025 г.

Выпущены androidx.xr.arcore:arcore:1.0.0-alpha05 , androidx.xr.arcore:arcore-guava:1.0.0-alpha05 и androidx.xr.arcore:arcore-rxjava3:1.0.0-alpha05 . Версия 1.0.0-alpha05 содержит следующие коммиты .

Новые функции

  • Add getPrimaryHandSide so the developer could get the hand side info ( I270bd )
  • Добавить API для проверки доступности VPS с использованием геопространственных данных ( I58573 )
  • Добавить API ARCore для checkVpsAvailability ( Idbded ).
  • В пакет :xr:arcore:arcore-rxjava3 добавлены функции расширения stateFlowable для использования Java-разработчиками. ( I083aa , b/427247794 )

Изменения в API

  • Значения параметров Config *Mode были переименованы в соответствии с их поведением. ( I6d247 , b/414648065 )
  • Основной артефакт ARCore (xr:arcore:arcore) будет содержать только асинхронные API в стиле Kotlin. Java-разработчики могут использовать библиотеку xr:arcore:arcore-rxjava3 для доступа к совместимым API. ( Ia525e , b/422794329 )
  • Основной артефакт ARCore ( xr:scenecore:scenecore ) будет содержать только асинхронные API в стиле Kotlin. Java-разработчики могут использовать библиотеку xr:arcore:arcore-guava для доступа к совместимым API. ( Iffcb4 , b/422773524 )
  • В AnchorGuava добавлена Anchor.persistAsync() для использования Java-разработчиками. ( I4af1c , b/425984631 )
  • Earth.createAnchorOnSurfaceAsync(Session, Double, Double, Double, Quaternion, Surface) добавлен в EarthGuava для использования Java-разработчиками. ( I66357 , b/425992992 )
  • Java-разработчики будут использовать функции расширения для GltfModel.createAsync в GltfModel.kt . Асинхронные функции в GltfModel будут удалены. ( I0af60 )
  • В этой библиотеке теперь используются аннотации JSpecify для проверки на null , которые относятся к использованию типов. Разработчикам Kotlin следует использовать следующий аргумент компилятора для обеспечения корректного использования: -Xjspecify-annotations=strict (это значение по умолчанию, начиная с версии 2.1.0 компилятора Kotlin) ( Ia8420 , b/326456246 )
  • В библиотеку :xr:arcore:arcore-rxjava3 добавлены функции расширения subscribeAsFlowable для использования Java-разработчиками. ( Id3e49 , b/427277298 )

Версия 1.0.0-alpha04

7 мая 2025 г.

Выпущена версия androidx.xr.arcore:arcore:1.0.0-alpha04 . Версия 1.0.0-alpha04 содержит следующие коммиты .

Изменения в API

  • Для использования проектов, выпущенных с Kotlin 2.0, требуется KGP 2.0.0 или более поздняя версия. ( Idb6b5 )
  • TrackingState и HandJointType перенесены из ARCore в Runtime.
  • Hand.State.isActive (boolean) изменено на Hand.State.trackingState (androidx.xr.runtime.TrackingState) .
  • Anchor.load возвращает Anchor.AnchorLoadInvalidUuid , если UUID недействителен.

Версия 1.0.0-alpha03

26 февраля 2025 г.

Выпущена версия androidx.xr.arcore:arcore:1.0.0-alpha03 без существенных изменений по сравнению с предыдущей альфа-версией. Версия 1.0.0-alpha03 содержит следующие коммиты .

Версия 1.0.0-alpha02

12 февраля 2025 г.

Выпущена версия androidx.xr.arcore:arcore:1.0.0-alpha02 . Версия 1.0.0-alpha02 содержит следующие коммиты .

Новые функции

  • Добавлена ​​поддержка отслеживания движений рук. Используйте Hand.left и Hand.right для доступа к информации об отслеживании.
  • Теперь все API-интерфейсы, генерирующие якорь ( Anchor.create , Anchor.load , Plane.createAnchor ), возвращают AnchorCreateResult и корректно реализуют AnchorCreateResourcesExhausted .

Исправлены ошибки

  • Anchor.detach больше не приводит к фатальному сбою из-за состояния гонки в потоке обновления сессии.
  • Anchor.create работает более стабильно при запуске на эмуляторе.

Версия 1.0.0-alpha01

12 декабря 2024 г.

Выпущена версия androidx.xr.arcore:arcore-* 1.0.0-alpha01 .

Особенности первоначального выпуска

Созданная по образцу существующей библиотеки ARCore, библиотека ARCore для Jetpack XR предоставляет возможности для интеграции цифрового контента с реальным миром. Эта библиотека включает в себя отслеживание движения, постоянные привязки, проверку попаданий и идентификацию плоскостей с семантической маркировкой (например, пол, стены и столешницы). Для получения дополнительной информации о работе с ARCore для Jetpack XR ознакомьтесь с руководством для разработчиков .

  • Session : ARCore для Jetpack XR использует среду выполнения Jetpack XR для обеспечения своей функциональности. Для взаимодействия с большинством API ARCore для Jetpack XR вы будете использовать сессию, поэтому, пожалуйста, ознакомьтесь с документацией.

  • Plane : Используйте самолеты, чтобы понять окружающий мир. Каждый самолет имеет Label , которая описывает его семантически. Вы можете использовать subscribe , чтобы получать уведомления о последних обнаруженных самолетах, или state , чтобы получать уведомления об изменениях в конкретном самолете.

  • Anchor : связь между виртуальным объектом и реальным местоположением. Якоря могут быть прикреплены к определенному месту в пространстве (с помощью create ) или к Trackable (с помощью createAnchor ).

    • Якоря можно использовать повторно в разных сессиях. Для их хранения можно использовать persist , для их перечисления — getPersistedAnchorUuids , а для их извлечения load . Обязательно unpersist их из списка, когда они больше не используются.

    • Якоря совместимы между ARCore для Jetpack XR и Jetpack SceneCore. Вы можете создать AnchorEntity используя якорь, или, если у вас уже есть AnchorEntity, вы можете использовать getAnchor для получения его базового якоря.

    • Обеспечьте естественное взаимодействие с пользователем, используя hitTest . hitTest использует Ray для определения того, с каким содержимым он пересекается, и для создания Anchor в этом месте. Рассмотрите возможность проведения hitTest из InputEvent .

Известные проблемы

  • Между вызовом функции unpersist и удалением её UUID из результатов, возвращаемых функцией getPersistedAnchorUuids , может возникнуть задержка.

  • create не проверит, достаточно ли у системы ресурсов для возврата новых якорей. Создание чрезмерного количества якорей может привести к сбою.

  • Сохранение ранее сохраненного и затем удаленного якоря в настоящее время не поддерживается.

  • Usage in the emulator is supported, but the behavior might not be as stable as when running on an actual device. Particularly, calls to create might fail with a native code error and immediately terminate the activity.

  • In certain circumstances, a RuntimeException might be erroneously thrown when calling persist with the message “Anchor was not persisted”. In those circumstances, the function would still succeed and the anchor will be persisted. We recommend wrapping the call to persist with a try block as a workaround.

,

ARCore for Jetpack XR

Bring digital content into the real world with perception capabilities.
Последнее обновление Стабильный релиз Предварительная версия релиза Бета-версия Альфа-версия
9 сентября 2026 г. - 1.0.0-rc01 - -

Объявление зависимостей

To add a dependency on ARCore for Jetpack XR, you must add the Google Maven repository to your project. Read Google's Maven repository for more information.

Add the dependencies for the artifacts you need in the build.gradle file for your app or module:

классный

dependencies {
    implementation "androidx.xr.arcore:arcore:1.0.0-rc01"
}

Котлин

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

For more information about dependencies, see Add build dependencies .

Обратная связь

Your feedback helps make Jetpack better. Let us know if you discover new issues or have ideas for improving this library. Please take a look at the existing issues in this library before you create a new one. You can add your vote to an existing issue by clicking the star button.

Создать новую задачу

See the Issue Tracker documentation for more information.

Версия 1.0

Version 1.0.0-rc01

9 сентября 2026 г.

androidx.xr.arcore:arcore-*:1.0.0-rc01 is released. Version 1.0.0-rc01 contains these commits .

Version 1.0.0-beta02

12 августа 2026 г.

androidx.xr.arcore:arcore-*:1.0.0-beta02 is released. Version 1.0.0-beta02 contains these commits .

Исправлены ошибки

  • Fix concurrency issue in OpenXR anchor persistence. ( I15c8b )
  • Implemented toString() in more classes for debugging. ( I587e8 )

Version 1.0.0-beta01

15 июля 2026 г.

androidx.xr.arcore:arcore-*:1.0.0-beta01 is released. Version 1.0.0-beta01 contains these commits .

Изменения в API

  • Updated resizable modifier to use a ResizePolicy instead of two modifiers ( I7fb0f , b/496257436 , b/519672992 )
  • Added movable overload with movePolicy param and deprecate transformingMovable and movable ( Ic88c1 , b/481781189 )
  • Removed TrackingState .TRACKING_DEGRADED from public API surface and map runtime degraded states to PAUSED instead. Update TrackingState to use enums instead of int values for string conversion and runtime conversion. ( I3eb5b , b/524326338 )
  • Converted Session.create to a suspend function. ( I5d27f )
  • Deprecated the ProjectedPermissionsResultContract ( I141d5 , b/515699436 )
  • Updated AnchorEntity to be called AnchorSpace ( Ifa95e , b/513619219 )

Version 1.0.0-alpha15

17 июня 2026 г.

androidx.xr.arcore:arcore-*:1.0.0-alpha15 is released. Version 1.0.0-alpha15 contains these commits .

Изменения в API

  • HitResult.createAnchor was removed. Developers can create an anchor representing the HitResult if the trackable of the result is an Anchorable by supplying the hit position to the createAnchor function of the Anchorable . ( Ia851e )
  • AnchorUnsupportedObject was removed. It is no longer thrown by a JXR ARCore runtime. ( Ia851e )
  • androidx.xr.arcore.Anchor and androidx.xr.arcore.ArDevice now implement androidx.xr.arcore.Trackable . ( I57b65 )
  • Depth.left , Depth.right , and Depth.mono are now non-nullable ( I1fc5e )
  • Face.getUserFace is now non-nullable ( I0eac1 )
  • RenderViewpoint.left , RenderViewpoint.right , RenderViewpoint.mono are now non-nullable ( Icf7fa )
  • Hand.left and Hand.right are non non-nullable ( Icef37 )
  • Added QrCode API ( Ia0bbe )

Version 1.0.0-alpha14

19 мая 2026 г.

androidx.xr.arcore:arcore-*:1.0.0-alpha14 is released. Version 1.0.0-alpha14 contains these commits .

Изменения в API

  • Deprecating GeospatialMode.VPS_AND_GPS in favor of GeospatialMode.SPATIAL and introducing a new lower-power tracking mode, GeospatialMode.INERTIAL , which uses only IMU and GPS. ( I1e6cd )
  • Custom anchor exception classes: AnchorInvalidUuidException , AnchorNotAuthorizedException , AnchorUnsupportedLocationException , AnchorRuntimeFailureException , and AnchorUnsupportedObjectException are now RuntimeException instances, not intended to be checked. ( I9356e )
  • Added ArCoreTestRule API, including TestArDevice , TestAugmentableObject , TestDepthMap , TestEye , TestFace , TestGeospatial , TestHand , TestPlane , TestRenderViewpoint , & TestTrackable ( I0ad3c )
  • Removes AnchorLoadInvalidUuid , AnchorCreateUnsupportedObject , AnchorCreateUnsupportedLocation , and AnchorCreateNotAuthorized . All of these errors are now exceptions in the runtime. Removes AnchorCreateIllegalState . This has been replaced with AnchorCreateTrackingUnavailable in most cases. Adds AnchorException and derived classes AnchorInvalidUuidException , AnchorNotAuthorizedException , AnchorUnsupportedLocationException , AnchorRuntimeFailureException , and AnchorUnsupportedObjectException . ( I4c4dd )

Внешний вклад

  • Added AugmentedImage API for custom marker tracking ( I0cf09 )

Version 1.0.0-alpha13

6 мая 2026 г.

androidx.xr.arcore:arcore-*:1.0.0-alpha13 is released. Version 1.0.0-alpha13 contains these commits .

Изменения в API

  • TrackingState and VpsAvailabilityResult have moved to the androidx.xr.arcore package , and the types in androidx.xr.runtime are now deprecated. ( Ic7930 , b/480462213 )
  • Renamed Plane.Type to PlaneType . ( I8c90c , b/482675376 )
  • Renamed Hand.HandSide to HandSide . ( Ica562 , b/482675376 )
  • Renamed Plane.Label to PlaneLabel . ( Ic6b67 , b/482675376 )
  • Renamed Geospatial.Surface to GeospatialSurface . ( I1a8be , b/482675376 )
  • Renamed Geospatial.State to GeospatialState . ( I203fa , b/482675376 )
  • Moved NativeData API to xr:runtime:runtime library. ( I87954 , b/494251500 )
  • Session.create and Session.configure are now non-exhaustive and require else clauses in when statements. ( I9885e , b/495805998 , b/495805998 )
  • androidx.xr.runtime.FieldOfView has been deprecated. Use androidx.xr.runtime.math.FieldOfView instead. ( Ia01a0 , b/480233045 )
  • Changed Orbiter to use either an OrbiterAnchorPoint + VolumeOffset or an OrbiterPoseProvider instead of position, offset, offsetType, alignment, and elevation. Also removed the shouldRenderInNonSpatial parameter. If the developer does not want the orbiter to render in non-spatial they should wrap the orbiter in an if statement and check the SpatialCapabilities . ( I9fbb3 , b/462428503 )
  • Added movable modifiers. These modifiers work well, right now, for SpatialPanels and SpatialExternalSurface . Very soon they will also be supported for SpatialGltfModels . However, the intention is to have these supported well for all SubspaceComposables . ( I9a3cd , b/479530787 , b/478935063 , b/478935063 )
  • Developers are expected to observe the ArDevice.state Flow to monitor State.trackingState and adjust their application's rendering or warnings accordingly based on the tracking fidelity. ( Ic00f0 , b/445466590 )
  • Renamed HandJointType enum values. ( Ifbc83 , b/482670596 )
  • Renamed FaceConfidenceRegion constants. ( Ia62d5 , b/482670596 )
  • Renamed FaceBlendShapeType constants. ( I33b8b , b/482670596 )
  • Added CreatePoseFromGeospatialPoseErrorInternal and CreateGeospatialPoseFromPoseErrorInternal . ( I4bcf1 , b/482666615 )
  • Renamed DeviceTrackingMode.LAST_KNOWN to SPATIAL_LAST_KNOWN (with a deprecated fallback), added INERTIAL_LAST_KNOWN for 3DoF tracking, and added TRACKING_DEGRADED to TrackingState . ( Ie661c , b/445466590 )
  • Deprecated GroupEntity . To have an Entity with only the base Entity functionality, call Entity.create which will return and Entity interface. ( I4c450 , b/473867483 )
  • Added XrLog API. Set XrLog.isEnabled to true to enable logging in JetpackXR, and use XrLog.Level to set the log level. ( I76a1f , b/463460895 , b/487378441 )

Исправлены ошибки

  • Add the device tracking state support to the openxr devices. ( I91485 , b/445466590 )

Version 1.0.0-alpha12

25 марта 2026 г.

androidx.xr.arcore:arcore-*:1.0.0-alpha12 is released. Version 1.0.0-alpha12 contains these commits .

Изменения в API

  • Changed Config.augmentedObjectCategories from a List to a Set. ( I25a64 , b/487376359 )
  • The types androidx.xr.arcore.Eye and androidx.xr.arcore.Hand . ( I42438 , b/449032900 )
  • Added Session.create overload to allow passing an Android Context for resource-scoping. ( I7d3fe , b/415805990 , b/477386334 )
  • Changes FakeRuntimeAnchor.ANCHOR_RESOURCE_LIMIT to FakeRuntimeAnchor.anchorResourceLimit . ( I90841 , b/431992235 )
  • Making TiltGesture API experimental as it may be changed or removed in the future. To use this api, opt in to @ExperimentalGesturesApi ( Ic9858 )
  • Added ability to set categories for AugmentedObject tracking in the Config ( I1f6e4 , b/480220930 )

Исправлены ошибки

  • Fixed Chrome's build by updating META-INF/services/ file with actual location of PerceptionRuntimeFactory . ( I7a801 , b/481288291 )

Version 1.0.0-alpha11

25 февраля 2026 г.

androidx.xr.arcore:arcore-*:1.0.0-alpha11 is released. Version 1.0.0-alpha11 contains these commits .

Version 1.0.0-alpha10

28 января 2026 г.

androidx.xr.arcore:arcore-*:1.0.0-alpha10 is released. Version 1.0.0-alpha10 contains these commits .

Новые функции

  • Introduces TiltGesture API, providing a reactive Flow for stable detection of device tilt (UP/DOWN) state with transition progress. ( Ic269f , b/448152779 )
  • ARCore for Jetpack XR now uses the XR Runtime Logging mechanism. See androidx.xr.runtime.Log for more information. ( l52735 , b/448697662 )

Изменения в API

  • Geospatial.createPoseFromGeospatialPose now works on OpenXR-enabled devices. ( l362c6 )

Version 1.0.0-alpha09

3 декабря 2025 г.

androidx.xr.arcore:arcore-*:1.0.0-alpha09 is released. Version 1.0.0-alpha09 contains these commits .

Version 1.0.0-alpha08

19 ноября 2025 г.

androidx.xr.arcore:arcore-*:1.0.0-alpha08 is released. Version 1.0.0-alpha08 contains these commits .

Новые функции

  • ARCore for Jetpack XR now supports devices where Google Play Services for AR is available.
  • Added Geospatial APIs for VPS Availability and pose conversion ( I144dc )

Version 1.0.0-alpha07

22 октября 2025 г.

androidx.xr.arcore:arcore-*:1.0.0-alpha07 is released. Version 1.0.0-alpha07 contains these commits .

Исправлены ошибки

  • :xr:arcore:arcore-openxr added as an implementation dependency to :xr:arcore:arcore ( I47315 , b/446999229 )

Version 1.0.0-alpha06

24 сентября 2025 г.

androidx.xr.arcore:arcore-*:1.0.0-alpha06 is released. Version 1.0.0-alpha06 contains these commits .

Изменения в API

  • Testing support for ARCore has migrated to the xr:arcore:arcore-testing module. ( I25469 )
  • Adding ArDevice and RenderViewpoint to allow applications to retrieve the device's pose and display configuration for rendering purposes. ( Ib7e3f )
  • Rename HandJointType enums with HAND_JOINT_TYPE_ prefix. ( I3f7cd )
  • HandJointType has been moved to xr:arcore:arcore from xr:runtime:runtime . ( Iadb9c , b/409058039 )
  • Hand.State now exposes a java.nio.FloatBuffer with the joint poses in a format that allows easy access to performance-oriented applications. ( I55e27 )

Version 1.0.0-alpha05

30 июля 2025 г.

androidx.xr.arcore:arcore:1.0.0-alpha05 , androidx.xr.arcore:arcore-guava:1.0.0-alpha05 , and androidx.xr.arcore:arcore-rxjava3:1.0.0-alpha05 are released. Version 1.0.0-alpha05 contains these commits .

Новые функции

  • Add getPrimaryHandSide so the developer could get the hand side info ( I270bd )
  • Add geospatial check VPS availability API ( I58573 )
  • Add ARCore API for checkVpsAvailability ( Idbded )
  • stateFlowable extension functions added to :xr:arcore:arcore-rxjava3 for usage by Java developers. ( I083aa , b/427247794 )

Изменения в API

  • Config *Mode vals have been renamed to reflect their behavior. ( I6d247 , b/414648065 )
  • The main ARCore artifact (xr:arcore:arcore) will only contain Kotlin-style async APIs. Java developers can depend on the xr:arcore:arcore-rxjava3 library to access compatible APIs. ( Ia525e , b/422794329 )
  • The main ARCore artifact ( xr:scenecore:scenecore ) will only contain Kotlin-style async APIs. Java developers can depend on the xr:arcore:arcore-guava library to access compatible APIs. ( Iffcb4 , b/422773524 )
  • Anchor.persistAsync() added to AnchorGuava for usage by Java developers. ( I4af1c , b/425984631 )
  • Earth.createAnchorOnSurfaceAsync(Session, Double, Double, Double, Quaternion, Surface) added to EarthGuava for usage by Java developers. ( I66357 , b/425992992 )
  • Java developers will use the extension functions for GltfModel.createAsync in GltfModel.kt . Async functions in GltfModel will be deleted. ( I0af60 )
  • This library now uses JSpecify nullness annotations , which are type-use. Kotlin developers should use the following compiler argument to enforce correct usage: -Xjspecify-annotations=strict (this is the default starting with version 2.1.0 of the Kotlin compiler) ( Ia8420 , b/326456246 )
  • subscribeAsFlowable extension functions added to :xr:arcore:arcore-rxjava3 for usage by Java developers. ( Id3e49 , b/427277298 )

Version 1.0.0-alpha04

7 мая 2025 г.

androidx.xr.arcore:arcore:1.0.0-alpha04 is released. Version 1.0.0-alpha04 contains these commits .

Изменения в API

  • Projects released with Kotlin 2.0 require KGP 2.0.0 or newer to be consumed. ( Idb6b5 )
  • TrackingState and HandJointType have been moved from ARCore to Runtime.
  • Hand.State.isActive (boolean) has been changed to Hand.State.trackingState (androidx.xr.runtime.TrackingState) .
  • Anchor.load returns Anchor.AnchorLoadInvalidUuid if the UUID is invalid.

Version 1.0.0-alpha03

26 февраля 2025 г.

androidx.xr.arcore:arcore:1.0.0-alpha03 is released with no notable changes since the last alpha. Version 1.0.0-alpha03 contains these commits .

Version 1.0.0-alpha02

12 февраля 2025 г.

androidx.xr.arcore:arcore:1.0.0-alpha02 is released. Version 1.0.0-alpha02 contains these commits .

Новые функции

  • Added hand tracking support. Use Hand.left and Hand.right to access the tracking information.
  • APIs that generate an anchor ( Anchor.create , Anchor.load , Plane.createAnchor ) now all return AnchorCreateResult and properly implement AnchorCreateResourcesExhausted .

Исправлены ошибки

  • Anchor.detach no longer causes a fatal crash due to a race condition with the Session update thread.
  • Anchor.create is more stable when running on an emulator

Version 1.0.0-alpha01

12 декабря 2024 г.

androidx.xr.arcore:arcore-* 1.0.0-alpha01 is released.

Features of initial release

Inspired by the existing ARCore library, the ARCore for Jetpack XR library provides capabilities for blending digital content with the real world. This library includes motion tracking, persistent anchors, hit testing, and plane identification with semantic labeling (for example, floor, walls, and tabletops). View the developer guide to learn more about working with ARCore for Jetpack XR.

  • Session : ARCore for Jetpack XR uses the Jetpack XR Runtime under-the-hood to power its functionality. You will use a Session to interact with most ARCore for Jetpack XR APIs, so please take a look at its documentation.

  • Plane : Use planes to understand the world around you. Each plane has a Label that describes it semantically. You can use subscribe to be notified about the latest detected planes or state to be notified about the changes to a specific plane.

  • Anchor : A link between a virtual object and a real world location. Anchors can be attached to a specific location in space (using create ) or a Trackable (using createAnchor ).

    • Anchors can be reused across sessions. You can use persist to store them, getPersistedAnchorUuids to enumerate them and load to retrieve them. Make sure that you unpersist them once they are no longer in use.

    • Anchors are interoperable between ARCore for Jetpack XR and Jetpack SceneCore. You can create an AnchorEntity using an anchor or, if you have an existing AnchorEntity, you can use getAnchor to retrieve its backing anchor.

    • Offer natural user interactions using hitTest . A hitTest uses a Ray to determine which contents it intersects and to create an Anchor from that location. Consider conducting a hitTest from an InputEvent .

Известные проблемы

  • There might be a delay between calling unpersist and its UUID being removed from the results returned by getPersistedAnchorUuids .

  • create will not validate that the system has enough resources to return new anchors. Creating an excessive amount of anchors might lead to a crash.

  • Persisting an Anchor that was previously persisted and unpersisted is not currently supported.

  • Usage in the emulator is supported, but the behavior might not be as stable as when running on an actual device. Particularly, calls to create might fail with a native code error and immediately terminate the activity.

  • In certain circumstances, a RuntimeException might be erroneously thrown when calling persist with the message “Anchor was not persisted”. In those circumstances, the function would still succeed and the anchor will be persisted. We recommend wrapping the call to persist with a try block as a workaround.

,

ARCore for Jetpack XR

Bring digital content into the real world with perception capabilities.
Последнее обновление Стабильный релиз Предварительная версия релиза Бета-версия Альфа-версия
9 сентября 2026 г. - 1.0.0-rc01 - -

Объявление зависимостей

To add a dependency on ARCore for Jetpack XR, you must add the Google Maven repository to your project. Read Google's Maven repository for more information.

Add the dependencies for the artifacts you need in the build.gradle file for your app or module:

классный

dependencies {
    implementation "androidx.xr.arcore:arcore:1.0.0-rc01"
}

Котлин

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

For more information about dependencies, see Add build dependencies .

Обратная связь

Your feedback helps make Jetpack better. Let us know if you discover new issues or have ideas for improving this library. Please take a look at the existing issues in this library before you create a new one. You can add your vote to an existing issue by clicking the star button.

Создать новую задачу

See the Issue Tracker documentation for more information.

Версия 1.0

Version 1.0.0-rc01

9 сентября 2026 г.

androidx.xr.arcore:arcore-*:1.0.0-rc01 is released. Version 1.0.0-rc01 contains these commits .

Version 1.0.0-beta02

12 августа 2026 г.

androidx.xr.arcore:arcore-*:1.0.0-beta02 is released. Version 1.0.0-beta02 contains these commits .

Исправлены ошибки

  • Fix concurrency issue in OpenXR anchor persistence. ( I15c8b )
  • Implemented toString() in more classes for debugging. ( I587e8 )

Version 1.0.0-beta01

15 июля 2026 г.

androidx.xr.arcore:arcore-*:1.0.0-beta01 is released. Version 1.0.0-beta01 contains these commits .

Изменения в API

  • Updated resizable modifier to use a ResizePolicy instead of two modifiers ( I7fb0f , b/496257436 , b/519672992 )
  • Added movable overload with movePolicy param and deprecate transformingMovable and movable ( Ic88c1 , b/481781189 )
  • Removed TrackingState .TRACKING_DEGRADED from public API surface and map runtime degraded states to PAUSED instead. Update TrackingState to use enums instead of int values for string conversion and runtime conversion. ( I3eb5b , b/524326338 )
  • Converted Session.create to a suspend function. ( I5d27f )
  • Deprecated the ProjectedPermissionsResultContract ( I141d5 , b/515699436 )
  • Updated AnchorEntity to be called AnchorSpace ( Ifa95e , b/513619219 )

Version 1.0.0-alpha15

17 июня 2026 г.

androidx.xr.arcore:arcore-*:1.0.0-alpha15 is released. Version 1.0.0-alpha15 contains these commits .

Изменения в API

  • HitResult.createAnchor was removed. Developers can create an anchor representing the HitResult if the trackable of the result is an Anchorable by supplying the hit position to the createAnchor function of the Anchorable . ( Ia851e )
  • AnchorUnsupportedObject was removed. It is no longer thrown by a JXR ARCore runtime. ( Ia851e )
  • androidx.xr.arcore.Anchor and androidx.xr.arcore.ArDevice now implement androidx.xr.arcore.Trackable . ( I57b65 )
  • Depth.left , Depth.right , and Depth.mono are now non-nullable ( I1fc5e )
  • Face.getUserFace is now non-nullable ( I0eac1 )
  • RenderViewpoint.left , RenderViewpoint.right , RenderViewpoint.mono are now non-nullable ( Icf7fa )
  • Hand.left and Hand.right are non non-nullable ( Icef37 )
  • Added QrCode API ( Ia0bbe )

Version 1.0.0-alpha14

19 мая 2026 г.

androidx.xr.arcore:arcore-*:1.0.0-alpha14 is released. Version 1.0.0-alpha14 contains these commits .

Изменения в API

  • Deprecating GeospatialMode.VPS_AND_GPS in favor of GeospatialMode.SPATIAL and introducing a new lower-power tracking mode, GeospatialMode.INERTIAL , which uses only IMU and GPS. ( I1e6cd )
  • Custom anchor exception classes: AnchorInvalidUuidException , AnchorNotAuthorizedException , AnchorUnsupportedLocationException , AnchorRuntimeFailureException , and AnchorUnsupportedObjectException are now RuntimeException instances, not intended to be checked. ( I9356e )
  • Added ArCoreTestRule API, including TestArDevice , TestAugmentableObject , TestDepthMap , TestEye , TestFace , TestGeospatial , TestHand , TestPlane , TestRenderViewpoint , & TestTrackable ( I0ad3c )
  • Removes AnchorLoadInvalidUuid , AnchorCreateUnsupportedObject , AnchorCreateUnsupportedLocation , and AnchorCreateNotAuthorized . All of these errors are now exceptions in the runtime. Removes AnchorCreateIllegalState . This has been replaced with AnchorCreateTrackingUnavailable in most cases. Adds AnchorException and derived classes AnchorInvalidUuidException , AnchorNotAuthorizedException , AnchorUnsupportedLocationException , AnchorRuntimeFailureException , and AnchorUnsupportedObjectException . ( I4c4dd )

Внешний вклад

  • Added AugmentedImage API for custom marker tracking ( I0cf09 )

Version 1.0.0-alpha13

6 мая 2026 г.

androidx.xr.arcore:arcore-*:1.0.0-alpha13 is released. Version 1.0.0-alpha13 contains these commits .

Изменения в API

  • TrackingState and VpsAvailabilityResult have moved to the androidx.xr.arcore package , and the types in androidx.xr.runtime are now deprecated. ( Ic7930 , b/480462213 )
  • Renamed Plane.Type to PlaneType . ( I8c90c , b/482675376 )
  • Renamed Hand.HandSide to HandSide . ( Ica562 , b/482675376 )
  • Renamed Plane.Label to PlaneLabel . ( Ic6b67 , b/482675376 )
  • Renamed Geospatial.Surface to GeospatialSurface . ( I1a8be , b/482675376 )
  • Renamed Geospatial.State to GeospatialState . ( I203fa , b/482675376 )
  • Moved NativeData API to xr:runtime:runtime library. ( I87954 , b/494251500 )
  • Session.create and Session.configure are now non-exhaustive and require else clauses in when statements. ( I9885e , b/495805998 , b/495805998 )
  • androidx.xr.runtime.FieldOfView has been deprecated. Use androidx.xr.runtime.math.FieldOfView instead. ( Ia01a0 , b/480233045 )
  • Changed Orbiter to use either an OrbiterAnchorPoint + VolumeOffset or an OrbiterPoseProvider instead of position, offset, offsetType, alignment, and elevation. Also removed the shouldRenderInNonSpatial parameter. If the developer does not want the orbiter to render in non-spatial they should wrap the orbiter in an if statement and check the SpatialCapabilities . ( I9fbb3 , b/462428503 )
  • Added movable modifiers. These modifiers work well, right now, for SpatialPanels and SpatialExternalSurface . Very soon they will also be supported for SpatialGltfModels . However, the intention is to have these supported well for all SubspaceComposables . ( I9a3cd , b/479530787 , b/478935063 , b/478935063 )
  • Developers are expected to observe the ArDevice.state Flow to monitor State.trackingState and adjust their application's rendering or warnings accordingly based on the tracking fidelity. ( Ic00f0 , b/445466590 )
  • Renamed HandJointType enum values. ( Ifbc83 , b/482670596 )
  • Renamed FaceConfidenceRegion constants. ( Ia62d5 , b/482670596 )
  • Renamed FaceBlendShapeType constants. ( I33b8b , b/482670596 )
  • Added CreatePoseFromGeospatialPoseErrorInternal and CreateGeospatialPoseFromPoseErrorInternal . ( I4bcf1 , b/482666615 )
  • Renamed DeviceTrackingMode.LAST_KNOWN to SPATIAL_LAST_KNOWN (with a deprecated fallback), added INERTIAL_LAST_KNOWN for 3DoF tracking, and added TRACKING_DEGRADED to TrackingState . ( Ie661c , b/445466590 )
  • Deprecated GroupEntity . To have an Entity with only the base Entity functionality, call Entity.create which will return and Entity interface. ( I4c450 , b/473867483 )
  • Added XrLog API. Set XrLog.isEnabled to true to enable logging in JetpackXR, and use XrLog.Level to set the log level. ( I76a1f , b/463460895 , b/487378441 )

Исправлены ошибки

  • Add the device tracking state support to the openxr devices. ( I91485 , b/445466590 )

Version 1.0.0-alpha12

25 марта 2026 г.

androidx.xr.arcore:arcore-*:1.0.0-alpha12 is released. Version 1.0.0-alpha12 contains these commits .

Изменения в API

  • Changed Config.augmentedObjectCategories from a List to a Set. ( I25a64 , b/487376359 )
  • The types androidx.xr.arcore.Eye and androidx.xr.arcore.Hand . ( I42438 , b/449032900 )
  • Added Session.create overload to allow passing an Android Context for resource-scoping. ( I7d3fe , b/415805990 , b/477386334 )
  • Changes FakeRuntimeAnchor.ANCHOR_RESOURCE_LIMIT to FakeRuntimeAnchor.anchorResourceLimit . ( I90841 , b/431992235 )
  • Making TiltGesture API experimental as it may be changed or removed in the future. To use this api, opt in to @ExperimentalGesturesApi ( Ic9858 )
  • Added ability to set categories for AugmentedObject tracking in the Config ( I1f6e4 , b/480220930 )

Исправлены ошибки

  • Fixed Chrome's build by updating META-INF/services/ file with actual location of PerceptionRuntimeFactory . ( I7a801 , b/481288291 )

Version 1.0.0-alpha11

25 февраля 2026 г.

androidx.xr.arcore:arcore-*:1.0.0-alpha11 is released. Version 1.0.0-alpha11 contains these commits .

Version 1.0.0-alpha10

28 января 2026 г.

androidx.xr.arcore:arcore-*:1.0.0-alpha10 is released. Version 1.0.0-alpha10 contains these commits .

Новые функции

  • Introduces TiltGesture API, providing a reactive Flow for stable detection of device tilt (UP/DOWN) state with transition progress. ( Ic269f , b/448152779 )
  • ARCore for Jetpack XR now uses the XR Runtime Logging mechanism. See androidx.xr.runtime.Log for more information. ( l52735 , b/448697662 )

Изменения в API

  • Geospatial.createPoseFromGeospatialPose now works on OpenXR-enabled devices. ( l362c6 )

Version 1.0.0-alpha09

3 декабря 2025 г.

androidx.xr.arcore:arcore-*:1.0.0-alpha09 is released. Version 1.0.0-alpha09 contains these commits .

Version 1.0.0-alpha08

19 ноября 2025 г.

androidx.xr.arcore:arcore-*:1.0.0-alpha08 is released. Version 1.0.0-alpha08 contains these commits .

Новые функции

  • ARCore for Jetpack XR now supports devices where Google Play Services for AR is available.
  • Added Geospatial APIs for VPS Availability and pose conversion ( I144dc )

Version 1.0.0-alpha07

22 октября 2025 г.

androidx.xr.arcore:arcore-*:1.0.0-alpha07 is released. Version 1.0.0-alpha07 contains these commits .

Исправлены ошибки

  • :xr:arcore:arcore-openxr added as an implementation dependency to :xr:arcore:arcore ( I47315 , b/446999229 )

Version 1.0.0-alpha06

24 сентября 2025 г.

androidx.xr.arcore:arcore-*:1.0.0-alpha06 is released. Version 1.0.0-alpha06 contains these commits .

Изменения в API

  • Testing support for ARCore has migrated to the xr:arcore:arcore-testing module. ( I25469 )
  • Adding ArDevice and RenderViewpoint to allow applications to retrieve the device's pose and display configuration for rendering purposes. ( Ib7e3f )
  • Rename HandJointType enums with HAND_JOINT_TYPE_ prefix. ( I3f7cd )
  • HandJointType has been moved to xr:arcore:arcore from xr:runtime:runtime . ( Iadb9c , b/409058039 )
  • Hand.State now exposes a java.nio.FloatBuffer with the joint poses in a format that allows easy access to performance-oriented applications. ( I55e27 )

Version 1.0.0-alpha05

30 июля 2025 г.

androidx.xr.arcore:arcore:1.0.0-alpha05 , androidx.xr.arcore:arcore-guava:1.0.0-alpha05 , and androidx.xr.arcore:arcore-rxjava3:1.0.0-alpha05 are released. Version 1.0.0-alpha05 contains these commits .

Новые функции

  • Add getPrimaryHandSide so the developer could get the hand side info ( I270bd )
  • Add geospatial check VPS availability API ( I58573 )
  • Add ARCore API for checkVpsAvailability ( Idbded )
  • stateFlowable extension functions added to :xr:arcore:arcore-rxjava3 for usage by Java developers. ( I083aa , b/427247794 )

Изменения в API

  • Config *Mode vals have been renamed to reflect their behavior. ( I6d247 , b/414648065 )
  • The main ARCore artifact (xr:arcore:arcore) will only contain Kotlin-style async APIs. Java developers can depend on the xr:arcore:arcore-rxjava3 library to access compatible APIs. ( Ia525e , b/422794329 )
  • The main ARCore artifact ( xr:scenecore:scenecore ) will only contain Kotlin-style async APIs. Java developers can depend on the xr:arcore:arcore-guava library to access compatible APIs. ( Iffcb4 , b/422773524 )
  • Anchor.persistAsync() added to AnchorGuava for usage by Java developers. ( I4af1c , b/425984631 )
  • Earth.createAnchorOnSurfaceAsync(Session, Double, Double, Double, Quaternion, Surface) added to EarthGuava for usage by Java developers. ( I66357 , b/425992992 )
  • Java developers will use the extension functions for GltfModel.createAsync in GltfModel.kt . Async functions in GltfModel will be deleted. ( I0af60 )
  • This library now uses JSpecify nullness annotations , which are type-use. Kotlin developers should use the following compiler argument to enforce correct usage: -Xjspecify-annotations=strict (this is the default starting with version 2.1.0 of the Kotlin compiler) ( Ia8420 , b/326456246 )
  • subscribeAsFlowable extension functions added to :xr:arcore:arcore-rxjava3 for usage by Java developers. ( Id3e49 , b/427277298 )

Version 1.0.0-alpha04

7 мая 2025 г.

androidx.xr.arcore:arcore:1.0.0-alpha04 is released. Version 1.0.0-alpha04 contains these commits .

Изменения в API

  • Projects released with Kotlin 2.0 require KGP 2.0.0 or newer to be consumed. ( Idb6b5 )
  • TrackingState and HandJointType have been moved from ARCore to Runtime.
  • Hand.State.isActive (boolean) has been changed to Hand.State.trackingState (androidx.xr.runtime.TrackingState) .
  • Anchor.load returns Anchor.AnchorLoadInvalidUuid if the UUID is invalid.

Version 1.0.0-alpha03

26 февраля 2025 г.

androidx.xr.arcore:arcore:1.0.0-alpha03 is released with no notable changes since the last alpha. Version 1.0.0-alpha03 contains these commits .

Version 1.0.0-alpha02

12 февраля 2025 г.

androidx.xr.arcore:arcore:1.0.0-alpha02 is released. Version 1.0.0-alpha02 contains these commits .

Новые функции

  • Added hand tracking support. Use Hand.left and Hand.right to access the tracking information.
  • APIs that generate an anchor ( Anchor.create , Anchor.load , Plane.createAnchor ) now all return AnchorCreateResult and properly implement AnchorCreateResourcesExhausted .

Исправлены ошибки

  • Anchor.detach no longer causes a fatal crash due to a race condition with the Session update thread.
  • Anchor.create is more stable when running on an emulator

Version 1.0.0-alpha01

12 декабря 2024 г.

androidx.xr.arcore:arcore-* 1.0.0-alpha01 is released.

Features of initial release

Inspired by the existing ARCore library, the ARCore for Jetpack XR library provides capabilities for blending digital content with the real world. This library includes motion tracking, persistent anchors, hit testing, and plane identification with semantic labeling (for example, floor, walls, and tabletops). View the developer guide to learn more about working with ARCore for Jetpack XR.

  • Session : ARCore for Jetpack XR uses the Jetpack XR Runtime under-the-hood to power its functionality. You will use a Session to interact with most ARCore for Jetpack XR APIs, so please take a look at its documentation.

  • Plane : Use planes to understand the world around you. Each plane has a Label that describes it semantically. You can use subscribe to be notified about the latest detected planes or state to be notified about the changes to a specific plane.

  • Anchor : A link between a virtual object and a real world location. Anchors can be attached to a specific location in space (using create ) or a Trackable (using createAnchor ).

    • Anchors can be reused across sessions. You can use persist to store them, getPersistedAnchorUuids to enumerate them and load to retrieve them. Make sure that you unpersist them once they are no longer in use.

    • Anchors are interoperable between ARCore for Jetpack XR and Jetpack SceneCore. You can create an AnchorEntity using an anchor or, if you have an existing AnchorEntity, you can use getAnchor to retrieve its backing anchor.

    • Offer natural user interactions using hitTest . A hitTest uses a Ray to determine which contents it intersects and to create an Anchor from that location. Consider conducting a hitTest from an InputEvent .

Известные проблемы

  • There might be a delay between calling unpersist and its UUID being removed from the results returned by getPersistedAnchorUuids .

  • create will not validate that the system has enough resources to return new anchors. Creating an excessive amount of anchors might lead to a crash.

  • Persisting an Anchor that was previously persisted and unpersisted is not currently supported.

  • Usage in the emulator is supported, but the behavior might not be as stable as when running on an actual device. Particularly, calls to create might fail with a native code error and immediately terminate the activity.

  • In certain circumstances, a RuntimeException might be erroneously thrown when calling persist with the message “Anchor was not persisted”. In those circumstances, the function would still succeed and the anchor will be persisted. We recommend wrapping the call to persist with a try block as a workaround.