Mit ARCore für Jetpack XR können Apps mit grundlegenden Konzepten der Augmented Reality (AR) arbeiten, indem sie Low-Level-Primitive zur Szenenerkennung und Bewegungserkennung verwenden. Verwenden Sie ARCore für Jetpack XR, wenn Sie AR-Inhalte erstellen und planare Daten verwenden oder Inhalte an einem festen Ort im Raum verankern möchten.
Session
-Lebenszyklus
Auf alle Objekte, die von ARCore für Jetpack XR erfasst werden, muss über eine Session
zugegriffen werden. Ähnlich wie der Lebenszyklus einer Aktivität haben auch Session
-Objekte einen Lebenszyklus, der entsprechend der Verwendung der Funktionen eines Session
-Objekts in Ihrer App verwaltet werden muss. Wenn Ihre App eine einzelne XR-fähige Aktivität enthält, sollten Sie den Lebenszyklus der Session
mit einer lebenszyklusbewussten Komponente verwalten.
Auf eine Session
zugreifen
Wenn Sie ARCore für Jetpack XR verwenden, muss Session
erstellt werden.
Wenn Sie Jetpack Compose for XR verwenden, verwenden Sie LocalSession
, um auf die für Sie erstellte Sitzung zuzugreifen.
Sitzung fortsetzen
Eine Sitzung sollte fortgesetzt werden, wenn Ihre App bereit ist, Statusänderungen von ARCore für Jetpack XR zu verarbeiten. In vielen Fällen geschieht dies im onResume()
-Callback Ihrer Aktivität. In Ihrer App kann die Verarbeitung jedoch bis zur Nutzerinteraktion verzögert werden.
Das folgende Code-Snippet zeigt ein Beispiel für die Fortsetzung einer Sitzung.
when (val result = session.resume()) { is SessionResumeSuccess -> { // Session has been created successfully. // Attach any successful handlers here. } is SessionResumePermissionsNotGranted -> { // Request permissions in `result.permissions`. } }
Unter SessionResumeResult
finden Sie Gründe, warum die Wiederaufnahme einer Session
fehlschlagen kann.
Sitzung pausieren
Wenn Ihre Aktivität in den Hintergrund wechselt, halten Sie Session
mit [Session.pause()
][Session.pause] an. Wenn Sie eine Sitzung pausieren, wird das Tracking vorübergehend angehalten, bis die Sitzung fortgesetzt wird. Der Status des Wahrnehmungssystems bleibt dabei erhalten.
Sitzung beenden
Wenn Sie eine Session
endgültig löschen möchten, verwenden Sie [Session.destroy()
][Session.destroy]. Dadurch werden die von der Sitzung verwendeten Ressourcen freigegeben und alle Sitzungsstatus werden gelöscht.
Siehe auch
- Mit ARCore für Jetpack XR mit Ankern arbeiten
- Mit ARCore für Jetpack XR mit Ebenen arbeiten
- Mit ARCore für Jetpack XR Hände modellieren