Session 为您的应用提供了空间化功能
的主要接口。每个空间化 Activity 都必须创建并保留
Session 的实例。应用创建会话后,可以使用 Session 接口
创建空间化内容实体(例如面板或 3D 模型),以及
设置空间环境、识别用户位置并将内容锚定到现实世界。
从 Jetpack Compose for XR 访问会话
使用 Jetpack Compose for XR 时,系统会为您创建会话,并且可以
使用 LocalSession.current访问该会话。请参阅以下示例:
@Composable fun ComposableUsingSession() { val session = LocalSession.current }
从 Jetpack XR 运行时访问会话
如果您要从 Jetpack SceneCore 库创建空间化实体,则需要创建会话。
如需创建会话,请将 Context 传递给
create() 方法。此 Context 可以是沉浸式 XR 设备或移动设备上的 Activity,也可以是
投影上下文。
创建 ARCore 会话可能是一项开销很大的任务,应在 后台处理,如 以下示例所示:
lifecycleScope.launch { when (val result = Session.create(context)) { is SessionCreateSuccess -> { val xrSession = result.session // ... } else -> TODO(/* A different unhandled exception was thrown. */) } }
当会话的 Activity 被销毁时,与该会话关联的所有空间界面和 3D 内容都会被销毁,并且该会话不再有效。