Acessar uma sessão para criar interfaces e entidades espacializadas

Dispositivos XR relevantes
Estas orientações ajudam você a criar experiências para esses tipos de dispositivos XR.
Headsets XR
Óculos XR com fio

O Session fornece a interface principal para a funcionalidade espacializada do seu app. Cada Activity espacializado precisa criar e manter uma instância de Session. Depois que o app cria uma sessão, ele pode usar as interfaces Session para criar entidades de conteúdo espacializado, como painéis ou modelos 3D, além de definir um ambiente espacial, identificar a posição do usuário e fixar conteúdo no mundo real.

Acessar uma sessão do Jetpack Compose para XR

Ao usar o Jetpack Compose para XR, a sessão é criada para você e pode ser acessada usando LocalSession.current. Confira este exemplo:

@Composable
fun ComposableUsingSession() {
    val session = LocalSession.current
}

Acessar uma sessão do ambiente de execução do Jetpack XR

Se você estiver criando entidades espacializadas da biblioteca SceneCore do Jetpack, precisará criar uma sessão.

Para criar uma sessão, transmita um Context para o método create(). Esse Context pode ser um Activity em dispositivos XR imersivos ou móveis ou um contexto projetado em óculos inteligentes.

Criar uma sessão do ARCore pode ser uma tarefa cara e precisa ser processada em segundo plano, conforme mostrado no exemplo a seguir:

lifecycleScope.launch {
    when (val result = Session.create(context)) {
        is SessionCreateSuccess -> {
            val xrSession = result.session
            // ...
        }
        else ->
            TODO(/* A different unhandled exception was thrown. */)
    }
}

A função create() pode usar um parâmetro opcional LifecycleOwner, que permite que o ciclo de vida da sessão seja gerenciado por um LifecycleOwner diferente. O LifecycleOwner precisa começar e terminar o ciclo de vida no escopo do contexto fornecido. Caso contrário, o Session pode estar sujeito a vazamentos.

Consulte também