Praca z ARCore w Jetpack XR

ARCore dla Jetpacka XR umożliwia aplikacjom korzystanie z podstawowych koncepcji rozszerzonej rzeczywistości (AR) przy użyciu prymitywnych funkcji niskiego poziomu do rozpoznawania sceny i śledzenia ruchu. Używaj ARCore w Jetpack XR podczas tworzenia doświadczeń AR, gdy musisz używać danych planarnych lub zakotwiczyć zawartość w stałym miejscu w przestrzeni.

Poznawanie cyklu życia Session

Do wszystkich obiektów śledzonych przez ARCore for Jetpack XR można uzyskać dostęp przez Session. Podobnie jak w przypadku cyklu życia aktywności obiekty Session również mają cykl życia, który musi być utrzymywany zgodnie z używaniem przez aplikację funkcji obiektu Session. Jeśli Twoja aplikacja zawiera jedną aktywność z obsługą XR, rozważ zarządzanie cyklem życia Session za pomocą elementu z obsługą cyklu życia.

Dostęp do Session

Jeśli używasz ARCore w Jetpack XR, musisz utworzyć obiekt Session.

Jeśli używasz Jetpack Compose na potrzeby XR, kliknij LocalSession, aby uzyskać dostęp do sesji utworzonej dla Ciebie.

Wznawianie sesji

Sesję należy wznowić, gdy aplikacja będzie gotowa do obsługi zmian stanu z ARCore dla Jetpacka XR. W większości przypadków jest to wykonywane w zwrotnym wywołaniu onResume() aktywności, ale aplikacja może opóźnić przetwarzanie do momentu interakcji z użytkownikiem.

Poniższy fragment kodu pokazuje przykład wznowienia sesji.

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

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

Więcej informacji o przyczynach, dla których Session może się nie wznowić, znajdziesz w artykule SessionResumeResult.

Wstrzymywanie sesji

Gdy aktywność przejdzie na drugi plan, wstrzymaj Session za pomocą [Session.pause()][Session.pause]. Wstrzymanie sesji powoduje tymczasowe zatrzymanie śledzenia do momentu wznowienia sesji, przy zachowaniu stanu systemu percepcji.

Niszczenie sesji

Aby trwale usunąć Session, użyj instrukcji [Session.destroy()][Session.destroy]. Zwalnia to zasoby używane przez sesję i niszczy wszystkie stany sesji.

Zobacz również