Session proporciona la interfaz principal para la funcionalidad espacializada de tu app. Cada Activity espacializado debe crear y contener una instancia de Session. Después de que tu app cree una sesión, podrá usar las interfaces de Session para crear entidades de contenido espacializado, como paneles o modelos 3D, así como establecer un entorno espacial, identificar la posición del usuario y fijar contenido al mundo real.
Cómo acceder a una sesión desde Jetpack Compose para RE
Cuando usas Jetpack Compose para XR, la sesión se crea por ti y se puede acceder a ella con LocalSession.current. Consulta el siguiente ejemplo:
@Composable fun ComposableUsingSession() { val session = LocalSession.current }
Cómo acceder a una sesión desde el entorno de ejecución de Jetpack XR
Si creas entidades espacializadas desde la biblioteca de SceneCore de Jetpack, deberás crear una sesión.
Para crear una sesión, pasa un Context al método create(). Este Context puede ser un Activity en dispositivos de RE envolventes o dispositivos móviles, o un contexto proyectado en lentes inteligentes.
Crear una sesión de ARCore puede ser una tarea costosa y se debe procesar en segundo plano, como se muestra en el siguiente ejemplo:
lifecycleScope.launch { when (val result = Session.create(context)) { is SessionCreateSuccess -> { val xrSession = result.session // ... } else -> TODO(/* A different unhandled exception was thrown. */) } }
La función create() puede usar un parámetro
LifecycleOwner opcional, que permite que
el ciclo de vida de la sesión se administre con un LifecycleOwner diferente. El LifecycleOwner debe comenzar y finalizar su ciclo de vida dentro del alcance del contexto proporcionado; de lo contrario, el Session puede ser propenso a pérdidas.
Consulta también
- Verifica las capacidades espaciales
- Transición entre HSM y FSM
- Agrega entornos espaciales a tu app
- Agrega modelos 3D a tu app