ARCore для Jetpack XR позволяет приложениям работать с базовыми концепциями дополненной реальности (AR), используя примитивы понимания сцены низкого уровня и отслеживание движения. Используйте ARCore для Jetpack XR при создании AR-опытов, и вам нужно использовать плоские данные или привязывать контент к фиксированному месту в пространстве.
Понимание жизненного цикла Session
Все объекты, отслеживаемые ARCore для Jetpack XR, должны быть доступны через Session
. Подобно жизненному циклу Activity , объекты Session
также имеют жизненный цикл, который должен поддерживаться в соответствии с использованием вашим приложением функций объекта Session
. Если ваше приложение содержит одну активность с поддержкой XR, рассмотрите возможность обработки жизненного цикла Session
с помощью компонента Lifecycle-aware .
Доступ к 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`. } }
Причины, по которым Session
может не возобновиться, см. в SessionResumeResult
.
Приостановить сеанс
Когда ваша активность переходит в фоновый режим, приостановите Session
с помощью Session.pause()
. Приостановка сеанса временно останавливает отслеживание до тех пор, пока сеанс не будет возобновлен, сохраняя состояние системы восприятия.
Уничтожить сессию
Чтобы окончательно удалить Session
, используйте Session.destroy()
. Это освобождает ресурсы, используемые сеансом, и уничтожает все состояния сеанса.
Смотрите также
- Работа с якорями с использованием ARCore для Jetpack XR
- Работа с самолетами с использованием ARCore для Jetpack XR
- Работа с руками с использованием ARCore для Jetpack XR