Accéder à une session pour créer des entités et une UI spatialisées

Appareils XR concernés
Ces conseils vous aideront à créer des expériences pour ces types d'appareils XR.
Casques XR
Lunettes XR filaires

Session fournit l'interface principale de la fonctionnalité spatialisée de votre application. Chaque Activity spatialisé doit créer et conserver une instance de Session. Une fois que votre application a créé une session, elle peut utiliser les interfaces Session pour créer des entités de contenu spatialisées telles que des panneaux ou des modèles 3D, ainsi que pour définir un environnement spatial, identifier la position de l'utilisateur et ancrer le contenu dans le monde réel.

Accéder à une session depuis Jetpack Compose pour XR

Lorsque vous utilisez Jetpack Compose pour XR, la session est créée pour vous et est accessible à l'aide de LocalSession.current. Consultez l'exemple suivant :

@Composable
fun ComposableUsingSession() {
    val session = LocalSession.current
}

Accéder à une session à partir de l'environnement d'exécution Jetpack XR

Si vous créez des entités spatialisées à partir de la bibliothèque Jetpack SceneCore, vous devez créer une session.

Pour créer une session, transmettez un Context à la méthode create(). Ce Context peut être un Activity sur des appareils XR immersifs ou des appareils mobiles, ou un contexte projeté sur des lunettes connectées.

La création d'une session ARCore peut être une tâche coûteuse et doit être traitée en arrière-plan, comme illustré dans l'exemple suivant :

lifecycleScope.launch {
    when (val result = Session.create(context)) {
        is SessionCreateSuccess -> {
            val xrSession = result.session
            // ...
        }
        else ->
            TODO(/* A different unhandled exception was thrown. */)
    }
}

La fonction create() peut utiliser un paramètre LifecycleOwner facultatif, qui permet de gérer le cycle de vie de la session par un autre LifecycleOwner. Le cycle de vie de LifecycleOwner doit commencer et se terminer dans le champ d'application du contexte fourni. Sinon, Session peut être sujet à des fuites.

Voir aussi