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- &
Displaybrillen

Verschiedene Arten von Audio- und Displaybrillen haben unterschiedliche Funktionen. Alle Audio- und Displaybrillen bieten beispielsweise Audiofunktionen über Sprache, aber nur Displaybrillen haben ein Display, auf dem Ihre App mit Jetpack Compose Glimmer erstellte UIs anzeigen kann.

Damit Nutzer auf verschiedenen Geräten eine nahtlose Nutzererfahrung haben, solltest du deine Activity für Brillen planen, um verschiedene Gerätefunktionen zu prüfen. Dieser Ansatz vereinfacht die Entwicklung, da Sie nur eine Aktivität erstellen müssen, die ihr Verhalten anpasst, anstatt mehrere Aktivitäten, die auf bestimmte Geräte ausgerichtet sind.

Lebenszyklus von geschätzten Aktivitäten

Die Aktivität, die Sie für Audio- und Displaybrillen 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 für diesen Zweck erstellen, sind projizierte Aktivitäten. Der Lebenszyklus von projizierten Aktivitäten basiert auf dem Standard-Aktivitätslebenszyklus, weist aber auch einige wichtige Unterschiede auf, die die Funktionen verschiedener Arten von Audio- und Displaybrillen unterstützen.

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

Hier finden Sie eine Aufschlüsselung der Schlüsselereignisse mit Hinweisen zu Interaktionen, die sich speziell auf Aktivitäten beziehen, die auf Audio- und Displaybrillen projiziert werden:

  • onCreate()
    • Wird aufgerufen, wenn die projizierte Aktivität erstellt wird.
    • Initialisieren Sie hier die Jetpack Compose Glimmer-Benutzeroberfläche und andere Komponenten Ihrer App.
  • onStart()
    • Wird aufgerufen, wenn die projizierte Aktivität beginnt und der Nutzer die App wahrnimmt.
  • onResume()
    • Wird aufgerufen, wenn die projizierte Aktivität wieder im Fokus ist. Wenn die Aktivität im Vordergrund 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 aufmerksam auf Ihre App ist. Während die Aktivität nicht im Fokus ist, kann nicht mit ihr interagiert werden und sie verarbeitet keine Eingaben mehr.
  • onStop()
    • Wird aufgerufen, wenn das System davon ausgeht, dass der Nutzer Ihre App nicht mehr wahrnimmt.
    • Wird aufgerufen, wenn die Brille vom Kopf abgenommen wird.
  • onDestroy()
    • Wird aufgerufen, wenn die projizierte Aktivität zerstört wird. Wenn diese Methode aufgerufen wird, gibt das System alle Ressourcen frei, die an die Aktivität gebunden sind.

Auswirkungen des Anzeigestatus auf den prognostizierten Aktivitätslebenszyklus

In einem Standard-Activity ändert sich der Lebenszyklusstatus, wenn das Display des Geräts ausgeschaltet wird. In der Regel wechselt er dann zu onPause() oder onStop(). Im Gegensatz dazu ändert sich der projizierte Aktivitätslebenszyklus nicht, wenn das Display der Brille ein- oder ausgeschaltet wird. Das bedeutet, dass die projizierte Aktivität weiterhin im Status „Gestartet“ oder „Fortgesetzt“ ausgeführt wird, auch 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 Nutzeraufklärung auf die prognostizierte Aktivität

Nutzer können Ihre geplanten Aktivitäten sehen, auch wenn sie nicht sichtbar sind. Wahrnehmung bezieht sich auf alle Möglichkeiten, wie ein Nutzer die Funktionen Ihrer App wahrnehmen und mit ihnen interagieren kann, einschließlich der folgenden:

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

In diesen Situationen ist sich der Nutzer bewusst, dass die Audio- und Displaybrille 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 Ihre App sieht, bleibt Ihre Aktivität aktiv und im Vordergrund. Wenn das System für kurze Zeit keine Signale für die Aufmerksamkeit erkennt, wird die Aktivität aus dem Vordergrund entfernt und schließlich onStop() ausgelöst.

Prognostizierte Aktivitäten und Kontexte

Audio- und Displaybrillen werden als verbundenes Gerät behandelt, das die Funktionen des Smartphones eines Nutzers erweitert. Ein projizierter Kontext ist ein gerätebewusstes Context, mit dem Apps mit der Hardware einer verbundenen Brille interagieren können, z. B. mit den Sensoren, der Kamera oder dem Mikrofon, anstatt mit der Hardware des Smartphones. Wenn Sie Anwendungen für Audio- und Displaybrillen entwickeln, muss Ihre App einen projizierten Kontext verwenden, um auf die Hardware der Brille zuzugreifen.

Ein projizierter Kontext kann Ihrer App automatisch gewährt werden, je nach Kontext der aufrufenden Aktivität:

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

  • Für Smartphone-Apps oder ‑Dienste: Wenn ein Teil Ihrer App außerhalb Ihrer projizierten Aktivität (z. B. eine Smartphone-Aktivität oder ein Dienst) auf die Hardware der Brille zugreifen muss, muss er 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 Displaybrillen zuzugreifen.

Gerätebezogene APIs

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

  • CameraManager: Greift auf die Kamera der Brille zu.
  • SensorManager: Ruft Sensordaten (z. B. Gyroskop- oder Beschleunigungsmesserdaten) von der Brille ab.
  • AudioManager: Verwaltet Audiostreams, Lautstärke und Routing auf der Brille.
  • AudioRecord: Audio wird über das Mikrofon der Brille aufgenommen.