Podczas codziennych czynności okulary z AI mogą utracić połączenie z urządzeniem hosta (np. telefonem użytkownika) lub mogą być tymczasowo niedostępne, jeśli użytkownik je zdejmie. Aby uwzględnić tego rodzaju zmiany w dostępności urządzenia, aplikacja może korzystać z interfejsu XR Device Availability API, który łączy sygnały dostępności urządzenia ze standardowymi wartościami Lifecycle.State Androida. Ten interfejs API pomaga zarządzać przekierowywaniem dźwięku i aktywacją za pomocą słowa-klucza oraz określać, kiedy można oczekiwać danych wejściowych użytkownika na podstawie dostępności okularów z AI.
Omówienie stanów cyklu życia
W tabeli poniżej znajdziesz informacje o tym, jak sygnały dotyczące dostępności urządzenia są mapowane na wartości Lifecycle.State.
Stan cyklu życia |
Stan urządzenia |
Opis |
|---|---|---|
|
Utworzono |
Obiekt cyklu życia został utworzony, ale nie jest jeszcze obserwowany. |
|
Nieaktywne |
Usługa jest połączona, ale użytkownik nie ma na sobie urządzenia. |
|
Aktywne |
Użytkownik nosi urządzenie. |
|
Odłączono |
Urządzenie jest odłączone lub połączenie z usługą zostało utracone. |
Sprawdzanie i monitorowanie dostępności urządzeń
Aby sprawdzić i monitorować dostępność urządzenia, użyj prognozowanego kontekstu wraz ze stanem cyklu życia, aby określić, jak aplikacja powinna obsługiwać poszczególne przypadki:
val xrDevice = XrDevice.getCurrentDevice(projectedContext) xrDevice.getLifecycle().currentStateFlow .takeWhile { it != Lifecycle.State.DESTROYED } .collect { state -> when (state) { Lifecycle.State.STARTED -> { /* Device is ACTIVE (worn) */ } Lifecycle.State.CREATED -> { /* Device is INACTIVE (not worn) */ } else -> { /* Handle other states */ } } } }
Najważniejsze informacje o kodzie
- Sprawdź połączenie: zanim uzyskasz dostęp do cyklu życia urządzenia, zadzwoń pod numer
ProjectedContext.isProjectedDeviceConnected, aby sprawdzić, czy projektowane urządzenie jest połączone z urządzeniem hosta. - Uzyskaj obiekt
ProjectedContext: Only callProjectedContext.createProjectedDeviceContextpo sprawdzeniu połączenia i upewnij się, że przekazujesz ten kontekst do instancjiXrDevice. - Obsługa unieważnienia kontekstu: za każdym razem, gdy połączone jest urządzenie wyświetlające, generowany jest nowy
deviceId. Gdy stan osiągnie wartośćDESTROYED, bieżącyProjectedContextstanie się nieprawidłowy. Natychmiast przestań z niej korzystać i poczekaj na nowe połączenie. - Optymalizacja baterii i zasobów: płynne zarządzanie funkcjami aplikacji w zależności od stanu cyklu życia, aby oszczędzać zasoby systemowe i zmniejszać zużycie baterii. Na przykład, gdy stan zmieni się na
CREATED, należy przestać wyświetlać treści interfejsu na okularach z AI.