Planowanie obsługi różnych typów okularów AI

Odpowiednie urządzenia XR
Te wskazówki pomogą Ci tworzyć treści na te urządzenia XR.
Okulary AI

Różne typy okularów AI mają różne możliwości. Na przykład wszystkie okulary AI oferują funkcje audio, ale niektóre mają też wyświetlacz, na którym aplikacja może wyświetlać interfejsy utworzone za pomocą Jetpack Compose Glimmer.

Aby zapewnić spójne wrażenia użytkownika na różnych urządzeniach z okularami AI, zaplanuj Activity dla okularów, aby sprawdzić różne możliwości urządzenia. Upraszcza to proces tworzenia, ponieważ możesz utworzyć jedną aktywność, która dostosowuje swoje działanie, zamiast wielu aktywności przeznaczonych na konkretne urządzenia.

Cykl życia prognozowanych działań

Aktywność, którą tworzysz na potrzeby okularów AI, nie jest uruchamiana bezpośrednio na urządzeniu, ale jest na nie przesyłana z urządzenia hosta (np. telefonu użytkownika). Działania utworzone w tym celu to działania prognozowane. Cykl życia prognozowanych działań jest oparty na standardowym cyklu życia aktywności, ale obejmuje też kilka kluczowych różnic, które obsługują możliwości różnych typów okularów AI.

Rysunek 1. Kluczowe zdarzenia w cyklu życia prognozowanych działań.

Oto podział kluczowych zdarzeń z wyróżnieniem interakcji, które są specyficzne dla działań prognozowanych na okularach AI:

  • onCreate()
    • Wywoływana, gdy tworzona jest prognozowana aktywność.
    • Tutaj zainicjuj interfejs Glimmer UI w Jetpack Compose i inne komponenty aplikacji.
  • onStart()
    • Wywoływana, gdy rozpoczyna się prognozowana aktywność, a użytkownik jest świadomy działania aplikacji.
  • onResume()
    • Wywoływana, gdy projektowana aktywność odzyska fokus. Gdy aktywność jest aktywna, można z nią wchodzić w interakcje i może ona odbierać dane wejściowe z touchpada lub przycisków.
    • Wywoływana, gdy okulary są ponownie zakładane (donned) po wcześniejszym zdjęciu z głowy (doffed).
  • onPause()
    • Wywoływana, gdy projektowana aktywność traci fokus, ale użytkownik nadal wie o Twojej aplikacji. Gdy aktywność jest poza fokusem, nie można jej używać i przestaje ona przetwarzać dane wejściowe.
  • onStop()
    • Wywoływana, gdy system uzna, że użytkownik nie jest już świadomy działania Twojej aplikacji.
    • Wywoływana, gdy okulary zostaną zdjęte z głowy.
  • onDestroy()
    • Wywoływana, gdy projektowana aktywność ma zostać zniszczona. Gdy ta metoda zostanie wywołana, system zwolni wszystkie zasoby powiązane z aktywnością.

Jak stan wyświetlania wpływa na przewidywany cykl życia aktywności

W standardowym Activity stan cyklu życia zmienia się, gdy ekran urządzenia wyłącza się, zwykle przechodząc do stanu onPause() lub onStop(). W przeciwieństwie do tego przewidywany cykl życia aktywności nie zmienia się, gdy wyświetlacz okularów AI włącza się lub wyłącza. Oznacza to, że przewidywana aktywność jest nadal uruchomiona lub wznawiana, nawet gdy wyświetlacz jest wyłączony, co pozwala na nieprzerwane działanie funkcji audio aplikacji.

Inne zmiany stanu aktywności wywoływane przez różne zdarzenia systemowe i zdarzenia użytkownika działają w zwykły sposób.

Jak świadomość użytkowników wpływa na prognozowaną aktywność

Użytkownik może być świadomy Twojej planowanej aktywności, nawet jeśli nie jest ona widoczna. Świadomość to wszystkie sposoby, w jakie użytkownik może odbierać i wykorzystywać funkcje aplikacji, w tym:

  • słuchanie dźwięku, sygnałów dźwiękowych lub innych wskazówek dźwiękowych;
  • działania aplikacji, które powodują włączenie diody LED widocznej dla użytkownika, np. wskaźnika prywatności, jeśli aplikacja uzyskuje dostęp do kamery lub mikrofonu;

W takich sytuacjach użytkownik wie, że okulary z AI są aktywne i reagują, nawet jeśli nie patrzy na wyświetlacz:

  • Stan onStart() w przypadku prognozowanych działań oznacza, że działanie jest aktywne.
  • Stan onResume() oznacza, że aktywność jest interaktywna i może odbierać dane wejściowe z touchpada lub odbierać podstawowe dane wejściowe.

Dopóki użytkownik wie o Twojej aplikacji, Twoja aktywność pozostaje aktywna i na pierwszym planie. Jeśli system przez krótki czas nie wykryje żadnych sygnałów świadomości, usunie aktywność z pierwszego planu i ostatecznie wywoła zdarzenie onStop().

Poznaj przewidywane działania i przewidywane konteksty

Okulary AI są traktowane jako połączone urządzenie, które rozszerza możliwości telefonu użytkownika. Projektowany kontekst to Context uwzględniający urządzenie, który umożliwia aplikacjom interakcję z hardwarem podłączonych okularów, takim jak czujniki, aparat czy mikrofon, a nie z hardwarem telefonu. Podczas tworzenia funkcji dla okularów z AI aplikacja musi używać prognozowanego kontekstu, aby uzyskać dostęp do hardware okularów.

Prognozowany kontekst może zostać automatycznie przyznany aplikacji w zależności od kontekstu aktywności wywołującej:

  • W przypadku prognozowanych aktywności: jeśli kod aplikacji jest uruchamiany w ramach prognozowanej aktywności, własny kontekst aktywności jest już prognozowanym kontekstem. W takim przypadku połączenia wykonywane w ramach tej aktywności mogą już korzystać z hardware okularów.

  • W przypadku aplikacji lub usług na telefon: jeśli część aplikacji poza prognozowaną aktywnością (np. aktywność na telefonie lub usługa) musi mieć dostęp do hardware okularów, musi wyraźnie uzyskać prognozowany kontekst. Aby to zrobić, użyj metody createProjectedDeviceContext().

Więcej informacji znajdziesz w artykule Używanie prognozowanego kontekstu do uzyskiwania dostępu do sprzętu okularów z AI.

Omówienie interfejsów API uwzględniających urządzenia

Niektóre standardowe interfejsy API Androida zmieniają sprzęt urządzenia, do którego mają dostęp, w zależności od Context wywołującej aktywności. Gdy te interfejsy API otrzymają prognozowany kontekst, uzyskują dostęp do sprzętu okularów AI zamiast do sprzętu na urządzeniu hosta:

  • CameraManager: uzyskuje dostęp do kamery w okularach.
  • SensorManager: pobiera dane z czujników (np. żyroskopu lub akcelerometru) z okularów.
  • AudioManager: zarządza strumieniami audio, głośnością i routingiem na okularach.
  • AudioRecord: nagrywa dźwięk za pomocą mikrofonu okularów.