Mit ARCore für Jetpack XR arbeiten

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