Session udostępnia podstawowy interfejs do funkcji przestrzennych w aplikacji. Każdy obiekt przestrzenny Activity musi utworzyć i przechowywać instancję Session. Po utworzeniu sesji aplikacja może używać interfejsów Session do tworzenia elementów treści przestrzennych, takich jak panele czy modele 3D, a także do ustawiania środowiska przestrzennego, określania pozycji użytkownika i zakotwiczania treści w świecie rzeczywistym.
Uzyskiwanie dostępu do sesji z Jetpack Compose for XR
Gdy używasz Jetpack Compose for XR, sesja jest tworzona automatycznie i można uzyskać do niej dostęp za pomocą LocalSession.current. Przyjrzyj się temu przykładowi:
@Composable fun ComposableUsingSession() { val session = LocalSession.current }
Uzyskiwanie dostępu do sesji z Jetpack XR Runtime
Jeśli tworzysz elementy przestrzenne z biblioteki Jetpack SceneCore, musisz utworzyć sesję.
Aby utworzyć sesję, przekaż Context do metody create(). Ten Context może być Activity na immersyjnych urządzeniach z XR lub urządzeniach mobilnych albo wyświetlanym kontekstem na inteligentnych okularach.
Tworzenie sesji ARCore może być kosztownym zadaniem i powinno być przetwarzane w tle, jak w tym przykładzie:
lifecycleScope.launch { when (val result = Session.create(context)) { is SessionCreateSuccess -> { val xrSession = result.session // ... } else -> TODO(/* A different unhandled exception was thrown. */) } }
Funkcja create() może używać opcjonalnego parametru LifecycleOwner, który umożliwia zarządzanie cyklem życia sesji przez inną funkcję LifecycleOwner. Cykl życia obiektu LifecycleOwner musi rozpoczynać się i kończyć w zakresie podanego kontekstu, w przeciwnym razie może dojść do wycieku obiektu Session.
Zobacz też
- Sprawdzanie możliwości przestrzennych
- Przejście między HSM i FSM
- Dodawanie środowisk przestrzennych do aplikacji
- Dodawanie modeli 3D do aplikacji