Geräteverfügbarkeit zur Laufzeit für KI-Brillen prüfen

Im Laufe des Tages kann es passieren, dass die KI-Brille eines Nutzers die Verbindung zum Hostgerät (z. B. dem Smartphone des Nutzers) verliert oder vorübergehend nicht verfügbar ist, wenn der Nutzer die Brille abnimmt. Um diese Arten von Änderungen der Geräteverfügbarkeit zu berücksichtigen, kann Ihre App die XR Device Availability API verwenden, die Signale zur Geräteverfügbarkeit in den Standardwerten Lifecycle.State von Android zusammenfasst. Mit dieser API können Sie das Audio-Routing und die Hotword-Aktivierung verwalten und wissen, wann Sie mit Nutzereingaben rechnen können, je nachdem, wann die KI-Brille verfügbar ist.

Lebenszyklusstatus

In der folgenden Tabelle ist aufgeführt, wie Signale zur Geräteverfügbarkeit den Werten Lifecycle.State zugeordnet werden.

Lebenszyklusstatus

Gerätestatus

Beschreibung

INITIALIZED

Erstellt

Das Lebenszyklusobjekt wurde erstellt, aber noch nicht beobachtet.

CREATED

Inaktiv

Der Dienst ist verbunden, aber der Nutzer trägt das Gerät nicht.

STARTED

Aktiv

Der Nutzer trägt das Gerät.

DESTROYED

Nicht verbunden

Die Verbindung zum Gerät wurde getrennt oder die Dienstverbindung ist verloren gegangen.

Geräteverfügbarkeit prüfen und überwachen

Um die Verfügbarkeit eines Geräts zu prüfen und zu überwachen, verwenden Sie einen projizierten Kontext zusammen mit dem Lebenszyklusstatus, um zu bestimmen, wie Ihre App in den einzelnen Fällen vorgehen soll:

    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 */ }
            }
        }
}

Wichtige Informationen zum Code

  • Verbindung prüfen: Bevor Sie auf den Gerätelebenszyklus zugreifen, rufen Sie ProjectedContext.isProjectedDeviceConnected auf, um zu prüfen, ob das projizierte Gerät mit dem Hostgerät verbunden ist.
  • ProjectedContext abrufen: Rufen Sie ProjectedContext.createProjectedDeviceContext erst auf, nachdem Sie die Verbindung geprüft haben, und übergeben Sie diesen Kontext an Ihre XrDevice Instanz.
  • Ungültigkeit des Kontexts verarbeiten: Jedes Mal, wenn sich ein projiziertes Gerät verbindet, wird eine neue deviceId generiert. Sobald der Status DESTROYED erreicht, ist der aktuelle ProjectedContext ungültig. Verwenden Sie ihn nicht mehr und warten Sie auf eine neue Verbindung.
  • Akkulaufzeit und Ressourcen optimieren: Verarbeiten Sie die App-Funktionen basierend auf dem Lebenszyklusstatus, um Systemressourcen zu schonen und den Akkuverbrauch zu senken. Beispielsweise sollten Sie brillenspezifische Ressourcen wie einen Kameradatenstream freigeben, wenn der Status von STARTED wieder zu CREATED wechselt. Der Status CREATED gibt an, dass das Gerät nicht mehr getragen wird. Daher ist es wichtig, diese Prozesse zu beenden, um unnötigen Akkuverbrauch zu vermeiden und die Privatsphäre der Nutzer zu schützen.