Проверка доступности устройства во время выполнения для очков с искусственным интеллектом.

В течение дня очки с искусственным интеллектом могут потерять связь с основным устройством (например, телефоном) или временно стать недоступными, если пользователь их снимет. Чтобы учесть подобные изменения доступности устройства, ваше приложение может использовать API доступности устройств XR, который объединяет сигналы доступности устройства в стандартные значения Android Lifecycle.State . Используйте этот API для управления маршрутизацией звука, активацией ключевых слов и определения момента ввода данных пользователем на основе доступности очков с искусственным интеллектом.

Понимание состояний жизненного цикла

В таблице ниже показано, как сигналы доступности устройства соотносятся со значениями Lifecycle.State .

Состояние жизненного цикла

Состояние устройства

Описание

INITIALIZED

Созданный

Объект жизненного цикла создан, но еще не отслеживается.

CREATED

Неактивный

Сервис подключен, но пользователь не носит устройство.

STARTED

Активный

Пользователь носит устройство.

DESTROYED

Отключено

Устройство отключено или связь с сервисом потеряна.

Проверяйте и отслеживайте доступность устройства.

Для проверки и мониторинга доступности устройства вы будете использовать прогнозируемый контекст вместе с состоянием жизненного цикла, чтобы определить, как ваше приложение должно обрабатывать каждый случай:

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

Основные моменты, касающиеся кода.

  • Проверка подключения : Перед доступом к жизненному циклу устройства вызовите метод ProjectedContext.isProjectedDeviceConnected , чтобы убедиться, что проецируемое устройство подключено к хост-устройству.
  • Получение ProjectedContext : Вызывайте ProjectedContext.createProjectedDeviceContext только после проверки соединения и убедитесь, что вы передаете этот контекст в экземпляр XrDevice .
  • Обработка аннулирования контекста : каждый раз при подключении проектируемого устройства генерируется новый deviceId . Как только состояние достигает DESTROYED , текущий ProjectedContext становится недействительным. Немедленно прекратите его использование и дождитесь нового подключения.
  • Оптимизация батареи и ресурсов : корректно обрабатывайте функциональность приложения в зависимости от состояния жизненного цикла, чтобы сохранить системные ресурсы и снизить потребление заряда батареи. Например, следует прекратить отображение содержимого пользовательского интерфейса на очках с искусственным интеллектом, когда состояние изменится на CREATED .