Session
は、アプリケーションの空間化された機能へのプライマリ インターフェースを提供します。空間化された各アクティビティは、Session
のインスタンスを作成して保持する必要があります。作成されたアプリケーションは、Session
インターフェースを使用して、パネルや 3D モデルなどの空間化されたコンテンツ エンティティを作成できます。また、空間環境を設定したり、ユーザーの位置を特定したり、コンテンツを現実世界に固定したりすることもできます。
Jetpack Compose for XR からセッションにアクセスする
Jetpack Compose for XR を使用すると、セッションが自動的に作成され、LocalSession.current
を使用してアクセスできます。次の例をご覧ください。
@Composable fun ComposableUsingSession() { val session = LocalSession.current }
Jetpack SceneCore からセッションにアクセスする
SceneCore ライブラリから空間化されたエンティティを作成する場合は、セッションを作成する必要があります。
セッションの作成は、Android XR デバイスでのみサポートされています。互換性のないデバイスでセッションを作成しようとすると、結果は失敗します。セッションを作成するには、次の例に示すように、アクティビティを create
メソッドに渡します。
when (val result = Session.create(this)) { is SessionCreateSuccess -> { val xrSession = result.session // ... } is SessionCreatePermissionsNotGranted -> TODO(/* The required permissions in result.permissions have not been granted. */) }
セッションのアクティビティが破棄されると、そのセッションに関連付けられている空間 UI と 3D コンテンツがすべて破棄され、セッションは無効になります。