Session は、アプリの空間化機能
へのプライマリ インターフェースを提供します。空間化された各 Activity は、
Session のインスタンスを作成して保持する必要があります。アプリがセッションを作成すると、Session インターフェース
を使用して、パネルや 3D モデルなどの空間化されたコンテンツ エンティティを作成したり、空間環境を設定したり、ユーザーの位置を特定したり、コンテンツを現実世界に固定したりできます。
Jetpack Compose for XR からセッションにアクセスする
Jetpack Compose for XR を使用する場合、セッションは自動的に作成され、
LocalSession.currentを使用してアクセスできます。次の例をご覧ください。
@Composable fun ComposableUsingSession() { val session = LocalSession.current }
Jetpack XR Runtime からセッションにアクセスする
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. */) } }
セッションのアクティビティが破棄されると、そのセッションに関連付けられているすべての空間 UI と 3D コンテンツが破棄され、セッションは無効になります。