Session – это основной интерфейс для работы с пространственными функциями в приложении. Каждый пространственный объект Activity должен создавать и содержать экземпляр Session. После создания сеанса приложение может использовать интерфейсы Session для создания объектов пространственного контента, таких как панели или 3D-модели, а также настраивать пространственную среду, определять положение пользователя и привязывать контент к реальному миру.
Как получить доступ к сеансу из Jetpack Compose for XR
При использовании Jetpack Compose для XR сеанс создается автоматически. Доступ к нему можно получить с помощью LocalSession.current. Вот пример:
@Composable fun ComposableUsingSession() { val session = LocalSession.current }
Как получить доступ к сеансу из среды выполнения Jetpack XR
Если вы создаете пространственные объекты из библиотеки Jetpack SceneCore, вам нужно будет создать сеанс.
Чтобы создать сеанс, передайте Context в метод create(). Context может быть Activity на XR-устройствах с эффектом погружения или мобильных устройствах, а также проецируемым контекстом на умных очках.
Создание сеанса ARCore может быть ресурсоемкой задачей, поэтому его следует обрабатывать в фоновом режиме, как показано в следующем примере:
lifecycleScope.launch { when (val result = Session.create(context)) { is SessionCreateSuccess -> { val xrSession = result.session // ... } else -> TODO(/* A different unhandled exception was thrown. */) } }
Функция create() может использовать необязательный параметр LifecycleOwner, который позволяет управлять жизненным циклом сеанса с помощью другого LifecycleOwner. Жизненный цикл LifecycleOwner должен начинаться и заканчиваться в рамках предоставленного контекста, иначе может произойти утечка Session.
Дополнительная информация
- Проверка поддержки пространственного звука
- Переход между HSM и FSM
- Как добавить пространственные среды в приложение
- Как добавить 3D-модели в приложение