ARCore для Jetpack XR позволяет приложениям работать с базовыми концепциями дополненной реальности (AR), используя низкоуровневые примитивы понимания сцены и отслеживание движения. Используйте ARCore для Jetpack XR при создании AR-приложений, и вам необходимо использовать плоские данные или привязывать контент к фиксированному местоположению в пространстве.
Понимание жизненного цикла Session
Доступ ко всем объектам, отслеживаемым ARCore для Jetpack XR, должен осуществляться через Session
. Подобно жизненному циклу Activity , объекты Session
также имеют жизненный цикл, который должен поддерживаться в соответствии с использованием вашим приложением функций объекта Session
. Если ваше приложение содержит одно действие с поддержкой XR, рассмотрите возможность управления жизненным циклом Session
с помощью компонента, поддерживающего жизненный цикл .
Доступ к Session
При использовании ARCore для Jetpack XR необходимо создать Session
.
При использовании Jetpack Compose для XR используйте LocalSession
для доступа к сеансу, созданному для вас.
Возобновить сеанс
Возобновление сеанса следует выполнять, когда ваше приложение готово обрабатывать изменения состояния из ARCore для Jetpack XR. Во многих случаях это делается в обратном вызове onResume()
вашего Activity, но ваше приложение может захотеть отложить обработку до взаимодействия с пользователем.
В следующем фрагменте кода показан пример возобновления сеанса.
when (val result = session.resume()) { is SessionResumeSuccess -> { // Session has been created successfully. // Attach any successful handlers here. } is SessionResumePermissionsNotGranted -> { // Request permissions in `result.permissions`. } }
См. SessionResumeResult
, чтобы узнать, почему Session
может не возобновиться.
Приостановить сеанс
Когда ваша активность переходит в фоновый режим, приостановите Session
, используя [ Session.pause()
][Session.pause]. Приостановка сеанса временно прекращает отслеживание до возобновления сеанса, сохраняя состояние системы восприятия.
Уничтожить сеанс
Чтобы навсегда удалить Session
, используйте [ Session.destroy()
][Session.destroy]. Это освобождает ресурсы, используемые сеансом, и уничтожает все состояния сеанса.
См. также
- Работайте с якорями с помощью ARCore для Jetpack XR.
- Работайте с самолетами с помощью ARCore для Jetpack XR
- Работайте руками с помощью ARCore для Jetpack XR