ARCore для Jetpack XR
Последнее обновление | Стабильный релиз | Кандидат на релиз | Бета-версия | Альфа-релиз |
---|---|---|---|---|
30 июля 2025 г. | - | - | - | 1.0.0-альфа05 |
Объявление зависимостей
Чтобы добавить зависимость от ARCore для Jetpack XR, необходимо добавить репозиторий Google Maven в свой проект. Подробнее см. в репозитории Google Maven .
Добавьте зависимости для необходимых артефактов в файл build.gradle
вашего приложения или модуля:
классный
dependencies { implementation "androidx.xr.arcore:arcore:1.0.0-alpha05" }
Котлин
dependencies { implementation("androidx.xr.arcore:arcore:1.0.0-alpha05") }
Дополнительные сведения о зависимостях см. в разделе Добавление зависимостей сборки .
Обратная связь
Ваши отзывы помогают улучшить Jetpack. Сообщите нам, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с уже существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете проголосовать за существующую проблему, нажав на кнопку со звёздочкой.
Более подробную информацию см. в документации по системе отслеживания проблем .
Версия 1.0
Версия 1.0.0-альфа05
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 ) - Функции расширения
stateFlowable
добавлены в:xr:arcore:arcore-rxjava3
для использования разработчиками Java. ( I083aa , b/427247794 )
Изменения API
- Конфигурация
*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 ) -
Anchor.persistAsync()
добавлен вAnchorGuava
для использования разработчиками 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
добавлены в:xr:arcore:arcore-rxjava3
для использования разработчиками Java. ( Id3e49 , b/427277298 )
Версия 1.0.0-альфа04
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-альфа03
26 февраля 2025 г.
androidx.xr.arcore:arcore:1.0.0-alpha03
выпущен без каких-либо заметных изменений с момента последней альфа-версии. Версия 1.0.0-alpha03 содержит следующие коммиты .
Версия 1.0.0-альфа02
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-альфа01
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
.