Доступ к сеансу для создания пространственного интерфейса и объектов

Поддерживаемые XR-устройства
Это руководство поможет вам создавать продукты для таких XR-устройств.
XR-шлемы
Проводные XR-очки

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.

Дополнительная информация