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() 方法。這可以是沉浸式 XR 裝置或行動裝置上的ContextActivity,也可以是投影的內容。
建立 ARCore 工作階段可能會耗用大量資源,因此應在背景處理,如下列範例所示:
lifecycleScope.launch { when (val result = Session.create(context)) { is SessionCreateSuccess -> { val xrSession = result.session // ... } else -> TODO(/* A different unhandled exception was thrown. */) } }
工作階段的活動遭到刪除時,系統會刪除與該工作階段相關聯的所有空間 UI 和 3D 內容,且該工作階段會失效。