Utiliser ARCore pour Jetpack XR

ARCore pour Jetpack XR permet aux applications de travailler avec les concepts de base de la réalité augmentée (RA), à l'aide de primitives de compréhension de scène de bas niveau et de suivi des mouvements. Utilisez ARCore pour Jetpack XR lorsque vous créez des expériences de RA et que vous devez utiliser des données planaires ou ancrer le contenu à un emplacement fixe dans l'espace.

Comprendre le cycle de vie d'un Session

Tous les objets suivis par ARCore pour Jetpack XR doivent être accessibles via un Session. Comme pour le cycle de vie d'une activité, les objets Session ont également un cycle de vie qui doit être géré en fonction de l'utilisation des fonctionnalités d'un objet Session par votre application. Si votre application ne contient qu'une seule activité compatible avec la RA, envisagez de gérer le cycle de vie de Session à l'aide d'un composant compatible avec le cycle de vie.

Accéder à un Session

Un Session doit être créé lorsque vous utilisez ARCore pour Jetpack XR.

Lorsque vous utilisez Jetpack Compose pour XR, utilisez LocalSession pour accéder à la session créée pour vous.

Reprendre une session

La reprise d'une session doit être effectuée lorsque votre application est prête à gérer les changements d'état d'ARCore pour Jetpack XR. Dans de nombreux cas, cela se fait dans le rappel onResume() de votre activité, mais votre application peut vouloir retarder le traitement jusqu'à l'interaction de l'utilisateur.

L'extrait de code suivant présente un exemple de reprise d'une session.

when (val result = session.resume()) {
    is SessionResumeSuccess -> {
        // Session has been created successfully.
        // Attach any successful handlers here.
    }

    is SessionResumePermissionsNotGranted -> {
        // Request permissions in `result.permissions`.
    }
}

Consultez SessionResumeResult pour connaître les raisons pour lesquelles la reprise d'un Session peut échouer.

Suspendre une session

Lorsque votre activité passe en arrière-plan, suspendez la Session à l'aide de [Session.pause()][Session.pause]. La suspension d'une session interrompt temporairement le suivi jusqu'à ce que la session soit reprise, ce qui permet de conserver l'état du système de perception.

Détruire une session

Pour supprimer définitivement un Session, utilisez [Session.destroy()][Session.destroy]. Cela libère les ressources utilisées par la session et détruit tous les états de session.

Voir aussi