Различные типы очков с ИИ обладают разными возможностями. Например, хотя все очки с ИИ поддерживают голосовое управление, некоторые из них также оснащены дисплеем, на котором ваше приложение может отображать интерфейсы, созданные с помощью Jetpack Compose Glimmer .
Чтобы обеспечить бесперебойный пользовательский опыт на различных очках с искусственным интеллектом, спланируйте Activity для очков с учётом возможностей различных устройств. Такой подход упрощает разработку, позволяя создать одну Activity, адаптирующую своё поведение, а не несколько, ориентированных на конкретные устройства.
Понимать жизненный цикл проектируемых мероприятий
Действия, создаваемые для очков с искусственным интеллектом, не выполняются непосредственно на устройстве, а проецируются на него с хост-устройства (например, телефона пользователя). Специальные действия, создаваемые для этой цели, называются проецируемыми действиями . Жизненный цикл проецируемых действий основан на стандартном жизненном цикле действий , но также включает ряд ключевых отличий, которые поддерживают возможности различных типов очков с искусственным интеллектом.

Ниже приведен анализ ключевых событий с выносками для взаимодействий, характерных для действий, проецируемых на очки ИИ:
-
onCreate()- Вызывается при создании проектируемой активности.
- Инициализируйте здесь пользовательский интерфейс Jetpack Compose Glimmer и другие компоненты вашего приложения.
-
onStart()- Вызывается, когда начинается прогнозируемое действие и пользователь знает о приложении.
-
onResume()- Вызывается, когда проецируемая активность снова оказывается в фокусе. Пока активность находится в фокусе, она интерактивна и может использовать сенсорную панель или кнопки.
- Называется так, когда очки снова надеваются (одеваются) после того, как они были ранее сняты (сняты) с головы.
-
onPause()- Вызывается, когда проецируемая активность теряет фокус, но пользователь всё ещё видит ваше приложение. Пока активность не в фокусе, она не взаимодействует с пользователем и прекращает получать входные данные.
-
onStop()- Вызывается, когда система считает, что пользователь больше не знает о вашем приложении.
- Вызывается, когда очки снимаются с головы.
-
onDestroy()- Вызывается, когда запланированная активность готова к уничтожению. При этом система освобождает все ресурсы, связанные с активностью.
Понять, как состояние отображения влияет на прогнозируемый жизненный цикл активности.
В стандартном Activity состояние жизненного цикла изменяется при выключении экрана устройства, обычно переходя в состояние onPause() или onStop() . В отличие от этого, жизненный цикл проецируемой активности не меняется при включении или выключении дисплея очков ИИ. Это означает, что проецируемая активность продолжает выполняться в состоянии «Запущено» или «Возобновлено» даже при выключенном дисплее, что позволяет аудиовоспроизведению вашего приложения продолжаться без прерываний.
Другие изменения состояния активности, вызванные различными системными и пользовательскими событиями, происходят обычным образом.
Понять, как осведомленность пользователей влияет на вашу прогнозируемую активность
Пользователь может быть в курсе ваших предполагаемых действий, даже если они не видны. Осведомлённость включает в себя все способы, которыми пользователь может воспринимать и взаимодействовать с вашим приложением, включая следующие:
- Прослушивание аудио, звуковой обратной связи или других звуковых сигналов.
- Действия приложения, которые активируют светодиод, обращенный к пользователю, например индикатор конфиденциальности, если приложение получает доступ к камере или микрофону.
В таких ситуациях пользователь знает, что очки ИИ активны и реагируют, даже если он не смотрит на дисплей:
- Состояние
onStart()для проектируемых действий означает, что действие активно. - Состояние
onResume()означает, что активность интерактивна и может получать ввод с сенсорной панели или получает первичный ввод.
Пока пользователь знает о вашем приложении, ваша активность остаётся активной и отображается на переднем плане. Если система не обнаруживает никаких сигналов активности в течение короткого периода времени, она удаляет активность с переднего плана и в конечном итоге запускает onStop() .
Понимать прогнозируемые действия и прогнозируемые контексты
Очки с искусственным интеллектом рассматриваются как подключенное устройство, расширяющее возможности телефона пользователя. Проецируемый контекст — это Context , распознающий устройство, который позволяет приложениям взаимодействовать с оборудованием подключенных очков, например, с датчиками, камерой или микрофоном, а не с оборудованием телефона. При разработке приложений для очков с искусственным интеллектом ваше приложение должно использовать проецируемый контекст для доступа к аппаратному обеспечению очков.
Спроецированный контекст может быть автоматически предоставлен вашему приложению в зависимости от контекста вызывающей активности:
Для проецируемых действий : если код вашего приложения выполняется из проецируемой активности, её собственный контекст активности уже является проецируемым контекстом. В этом случае вызовы, выполняемые внутри этой активности, уже могут получать доступ к аппаратному обеспечению очков.
Для телефонных приложений или сервисов : если часть вашего приложения, не относящаяся к проецируемой активности (например, активность телефона или сервис), требует доступа к аппаратному обеспечению очков, она должна явно получить проецируемый контекст. Для этого используйте метод
createProjectedDeviceContext().
Для получения дополнительной информации см. раздел Использование проецируемого контекста для доступа к аппаратному обеспечению очков ИИ .
Понимание API, распознающих устройства
Некоторые стандартные API Android изменяют доступ к оборудованию устройства в зависимости от Context вызова. Когда эти API получают проецируемый контекст, они обращаются к оборудованию очков с искусственным интеллектом, а не к оборудованию основного телефона:
-
CameraManager: Доступ к камере на очках. -
SensorManager: извлекает данные датчиков (например, данные гироскопа или акселерометра) из очков. -
AudioManager: управляет аудиопотоками, громкостью и маршрутизацией на очках. -
AudioRecord: записывает звук с помощью микрофона очков.