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
- Verificar recursos espaciais
- Transição entre HSM e FSM
- Adicionar ambientes espaciais ao app
- Adicionar modelos 3D ao app