Lavorare con ARCore per Jetpack XR

ARCore per Jetpack XR consente alle app di utilizzare i concetti di base della realtà virtuale (AR), utilizzando primitive di comprensione della scena di basso livello e il monitoraggio dei movimenti. Utilizza ARCore per Jetpack XR quando crei esperienze AR e devi utilizzare dati planari o ancorare i contenuti a una posizione fissa nello spazio.

Informazioni sul ciclo di vita di Session

Per accedere a tutti gli oggetti monitorati da ARCore per Jetpack XR è necessario un Session. Analogamente al ciclo di vita di un'attività, anche gli oggetti Session hanno un ciclo di vita che deve essere gestito in base all'utilizzo delle funzionalità di un oggetto Session da parte della tua app. Se la tua app contiene una singola attività compatibile con la realtà virtuale, valuta la possibilità di gestire il ciclo di vita di Session utilizzando un componente consapevole del ciclo di vita.

Accedere a un Session

Quando utilizzi ARCore per Jetpack XR, devi creare un Session.

Quando utilizzi Jetpack Compose per XR, usa LocalSession per accedere alla sessione creata per te.

Riprendere una sessione

La ripresa di una sessione deve essere eseguita quando l'app è pronta a gestire le modifiche dello stato da ARCore per Jetpack XR. In molti casi, questa operazione viene eseguita nel callback onResume() dell'attività, ma l'app potrebbe voler ritardare l'elaborazione fino all'interazione dell'utente.

Il seguente snippet di codice mostra un esempio di ripresa di una sessione.

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

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

Consulta SessionResumeResult per i motivi per cui la ripresa di un Session potrebbe non riuscire.

Mettere in pausa una sessione

Quando l'attività passa in background, metti in pausa Session utilizzando [Session.pause()][Session.pause]. La messa in pausa di una sessione interrompe temporaneamente il monitoraggio fino a quando la sessione non viene ripresa, mantenendo lo stato del sistema di percezione.

Terminare una sessione

Per eliminare definitivamente un Session, utilizza [Session.destroy()][Session.destroy]. In questo modo vengono liberate le risorse in uso dalla sessione e vengono distrutti tutti gli stati della sessione.

Vedi anche