セッション

Session は、アプリケーションの空間化された機能へのメイン インターフェースを提供します。空間化された各アクティビティは、Session のインスタンスを作成して保持する必要があります。作成後、アプリケーションは Session インターフェースを使用して、パネルや 3D モデルなどの空間化されたコンテンツ エンティティを作成できます。また、空間環境を設定したり、ユーザーの位置を特定したり、コンテンツを現実世界に固定したりすることもできます。

Jetpack Compose for XR からセッションにアクセスする

XR 用 Jetpack Compose を使用すると、セッションが自動的に作成され、LocalSession.current を使用してアクセスできます。次の例をご覧ください。

import androidx.xr.compose.platform.LocalSession

class myActivity : Activity() {
   val xrSession = checkNotNull(LocalSession.current)
}

Jetpack SceneCore からセッションにアクセスする

SceneCore ライブラリから空間化されたエンティティを作成する場合は、セッションを自分でインスタンス化する必要があります。

セッションの作成は、Android XR デバイスでのみサポートされています。現時点では、Session を作成して Android XR 以外のデバイスで使用しようとすると、NullPointerException が返されます。

アクティビティごとに作成できるセッションは 1 つのみです。セッションを作成するには、次の例に示すように、アクティビティを create メソッドに渡します。互換性のないデバイスでセッションを作成しようとすると、ランタイム エラーが発生することがあります。

import androidx.xr.scenecore.Session

class myActivity : Activity() {
  val xrSession = Session.create(this)
}

セッションのアクティビティが破棄されると、そのセッションに関連付けられている空間 UI と 3D コンテンツがすべて破棄され、セッションは無効になります。

関連ドキュメント