Accedere a una sessione per creare UI ed entità spazializzate

Dispositivi XR applicabili
Queste indicazioni ti aiutano a creare esperienze per questi tipi di dispositivi XR.
Visori XR
Occhiali XR con cavo

Session fornisce l'interfaccia principale per la funzionalità spazializzata per la tua app. Ogni Activity spazializzato deve creare e contenere un'istanza di Session. Dopo che l'app ha creato una sessione, può utilizzare le interfacce Session per creare entità di contenuti spazializzati, come pannelli o modelli 3D, nonché impostare un ambiente spaziale, identificare la posizione dell'utente e ancorare i contenuti al mondo reale.

Accedi a una sessione da Jetpack Compose per XR

Quando utilizzi Jetpack Compose per XR, la sessione viene creata per te ed è possibile accedervi utilizzando LocalSession.current. Vedi l'esempio di seguito:

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

Accedi a una sessione da Jetpack XR Runtime

Se crei entità spazializzate dalla libreria Jetpack SceneCore, devi creare una sessione.

Per creare una sessione, passa un Context al metodo create(). Questo Context può essere un Activity su dispositivi XR immersivi o dispositivi mobili oppure un contesto proiettato su occhiali intelligenti.

La creazione di una sessione ARCore può essere un'attività dispendiosa e deve essere elaborata in background, come mostrato nell'esempio seguente:

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

La funzione create() può utilizzare un parametro LifecycleOwner facoltativo, che consente di gestire il ciclo di vita della sessione con un LifecycleOwner diverso. LifecycleOwner deve iniziare e terminare il suo ciclo di vita nell'ambito del contesto fornito, altrimenti Session potrebbe essere soggetto a perdite.

Vedi anche