Unterstützung verschiedener Arten von Audio- und Displaybrillen planen

XR‑Geräte, für die der Leitfaden gilt
Dieser Leitfaden hilft Ihnen dabei, Erlebnisse für die folgenden Arten von XR-Geräten zu entwickeln.
Audio- und
Display-Brillen

Die verschiedenen Arten von Audio- und Display-Brillen haben unterschiedliche Funktionen. So bieten beispielsweise alle Audio- und Display-Brillen Audiofunktionen per Sprachbefehl, aber nur Display-Brillen haben ein Display, auf dem Ihre App mit Jetpack Compose Glimmer erstellte Benutzeroberflächen anzeigen kann.

Wenn du eine nahtlose Nutzererfahrung auf verschiedenen Geräten schaffen möchtest, solltest du deine Activity für Brillen so planen, dass sie die verschiedenen Gerätefunktionen berücksichtigt. Dieser Ansatz vereinfacht die Entwicklung, da Sie eine Aktivität erstellen können, die ihr Verhalten anpasst, anstatt mehrere Aktivitäten für bestimmte Geräte zu erstellen.

Lebenszyklus von projizierten Aktivitäten

Die Aktivität, die Sie für Audio- und Display-Brillen erstellen, wird nicht direkt auf dem Gerät ausgeführt, sondern von einem Hostgerät (z. B. dem Smartphone des Nutzers) auf das Gerät projiziert. Spezielle Aktivitäten, die Sie zu diesem Zweck erstellen, sind prognostizierte Aktivitäten. Der Lebenszyklus projizierter Aktivitäten basiert auf dem Standard-Aktivitätslebenszyklus, weist aber auch einige wichtige Unterschiede auf, die die Funktionen verschiedener Arten von Audio- und Display-Brillen unterstützen.

Abbildung 1: Die wichtigsten Ereignisse im Lebenszyklus projizierter Aktivitäten.

Hier ist eine Übersicht der wichtigsten Ereignisse mit Hinweisen zu Interaktionen, die spezifisch für Aktivitäten sind, die auf Audio- und Display-Brillen projiziert werden:

  • onCreate()
    • Wird aufgerufen, wenn die prognostizierte Aktivität erstellt wird.
    • Initialisieren Sie hier die Jetpack Compose Glimmer-UI und andere Komponenten Ihrer App.
  • onStart()
    • Wird aufgerufen, wenn die projizierte Aktivität gestartet wird und der Nutzer die App kennt.
  • onResume()
    • Wird aufgerufen, wenn die projizierte Aktivität wieder den Fokus erhält. Wenn die Aktivität im Fokus ist, kann mit ihr interagiert werden und sie kann Touchpad- oder Tasteneingaben verarbeiten.
    • Wird aufgerufen, wenn die Brille wieder aufgesetzt wird, nachdem sie zuvor abgenommen wurde.
  • onPause()
    • Wird aufgerufen, wenn die projizierte Aktivität den Fokus verliert, der Nutzer aber weiterhin auf Ihre App aufmerksam ist. Während die Aktivität nicht im Fokus ist, kann nicht mit ihr interagiert werden und sie nimmt keine Eingaben mehr an.
  • onStop()
    • Wird aufgerufen, wenn das System davon ausgeht, dass der Nutzer Ihre App nicht mehr wahrnimmt.
    • Wird aufgerufen, wenn die Datenbrille vom Kopf abgenommen wird.
  • onDestroy()
    • Wird aufgerufen, wenn die projizierte Aktivität gelöscht werden soll. Wenn diese Methode aufgerufen wird, gibt das System alle Ressourcen frei, die mit der Aktivität verknüpft sind.

Auswirkungen des Displaystatus auf den prognostizierten Aktivitätslebenszyklus

In einer Standard-Activity ändert sich der Lebenszyklusstatus, wenn das Display des Geräts ausgeschaltet wird. In der Regel wechselt er zu onPause() oder onStop(). Im Gegensatz dazu ändert sich der Aktivitätslebenszyklus der projizierten Aktivität nicht, wenn das Display der Datenbrille ein- oder ausgeschaltet wird. Das bedeutet, dass die projizierte Aktivität auch dann im Status „Gestartet“ oder „Fortgesetzt“ ausgeführt wird, wenn das Display ausgeschaltet ist. So können die Audiofunktionen Ihrer App ohne Unterbrechung fortgesetzt werden.

Andere Änderungen des Aktivitätsstatus, die durch verschiedene System- und Nutzerereignisse ausgelöst werden, verhalten sich wie gewohnt.

Auswirkungen der Nutzerbekanntheit auf die prognostizierte Aktivität

Ein Nutzer kann sich Ihrer projizierten Aktivität bewusst sein, auch wenn sie nicht sichtbar ist. Wahrnehmung bezieht sich auf alle Möglichkeiten, wie ein Nutzer die Funktionen deiner App wahrnehmen und mit ihnen interagieren kann, einschließlich der folgenden:

  • Audioinhalte, akustisches Feedback oder andere akustische Hinweise anhören
  • App-Aktionen, die eine für Nutzer sichtbare LED auslösen, z. B. eine Datenschutzanzeige, wenn deine App auf die Kamera oder das Mikrofon zugreift.

In diesen Situationen ist sich der Nutzer bewusst, dass seine Audio- oder Display-Brille aktiv ist und reagiert, auch wenn er nicht auf ein Display schaut:

  • Der Status onStart() für prognostizierte Aktivitäten bedeutet, dass die Aktivität aktiv ist.
  • Der Status onResume() bedeutet, dass die Aktivität interaktiv ist und Touchpad-Eingaben empfangen kann oder primäre Eingaben empfängt.

Solange der Nutzer sich deiner App bewusst ist, bleibt deine Aktivität aktiv und im Vordergrund. Wenn das System für kurze Zeit keine Signale für Aufmerksamkeit erkennt, wird die Aktivität aus dem Vordergrund entfernt und schließlich onStop() ausgelöst.

Prognostizierte Aktivitäten und prognostizierte Kontexte verstehen

Audio- und Display-Brillen werden als verbundene Geräte behandelt, die die Funktionen des Smartphones eines Nutzers erweitern. Ein projizierter Kontext ist ein geräteabhängiger Context, der es Apps ermöglicht, mit der Hardware eines verbundenen Brillengeräts zu interagieren, z. B. mit den Sensoren oder der Kamera, anstatt mit der Hardware des Smartphones. Wenn Sie Anwendungen für Audio- und Display-Brillen entwickeln, muss Ihre App einen projizierten Kontext verwenden, um auf die Hardware der Brille zuzugreifen.

Je nach Kontext der aufrufenden Aktivität kann Ihrer App automatisch ein projizierter Kontext gewährt werden:

  • Für projizierte Aktivitäten: Wenn der Code Ihrer App innerhalb Ihrer projizierten Aktivität ausgeführt wird, ist der Aktivitätskontext bereits ein projizierter Kontext. In diesem Szenario können Aufrufe innerhalb dieser Aktivität bereits auf die Hardware der Brille zugreifen.

  • Für Telefon-Apps oder ‑Dienste: Wenn ein Teil deiner App außerhalb deiner projizierten Aktivität (z. B. eine Telefon-Aktivität oder ein Dienst) auf die Hardware der Datenbrille zugreifen muss, muss sie explizit einen projizierten Kontext abrufen. Verwenden Sie dazu die Methode createProjectedDeviceContext().

Weitere Informationen finden Sie unter Projizierten Kontext verwenden, um auf Hardware von Audio- und Display-Brillen zuzugreifen.

Geräteabhängige APIs

Bei einigen Android-Standard-APIs ändert sich je nach Context der aufrufenden Aktivität, auf welche Gerätehardware sie zugreifen. Wenn diese APIs einen projizierten Kontext empfangen, greifen sie auf die Hardware der Brille statt auf die Hardware des Host-Smartphones zu:

  • CameraManager: Greift auf die Kamera der Datenbrille zu.
  • SensorManager: Ruft Sensordaten (z. B. Gyroskop- oder Beschleunigungsmesserdaten) von der Brille ab.
  • AudioManager: Verwaltet Audiostreams, Lautstärke und Routing auf der Brille.