Сервисы наблюдения за здоровьем в Wear OS

В Wear OS 3 и более поздних версиях есть сервисы наблюдения за здоровьем. Сервисы наблюдения за здоровьем выступают в качестве посредника между различными датчиками и алгоритмами на устройстве, чтобы предоставлять приложениям качественные данные об активности, тренировках и здоровье.

Примеры фитнес-приложений можно найти в хранилище примеров сервисов наблюдения за здоровьем на GitHub.

Как сервисы наблюдения за здоровьем помогают разработчикам приложений

Без сервисов наблюдения за здоровьем приложениям приходится подключаться к одному или нескольким датчикам, настраивать каждый из них, получать необработанные данные и использовать собственные алгоритмы для извлечения полезной информации. Например, приложение может зарегистрироваться для получения обновлений Sensor.TYPE_PRESSURE, чтобы узнавать текущее атмосферное давление, использовать его для вычисления текущей высоты и агрегировать эти данные с течением времени, чтобы показывать изменения высоты во время сеанса активности пользователя.

Сервисы наблюдения за здоровьем автоматически настраивают все датчики, связанные с фитнесом и здоровьем, собирают данные с них и рассчитывают такие показатели, как пульс, расстояние, калории, высота, этажи, скорость, темп и т. д. Приложения могут регистрироваться для получения этих данных непосредственно из сервисов наблюдения за здоровьем.

Схема архитектуры сервисов наблюдения за здоровьем
Рисунок 1. Архитектура сервисов наблюдения за здоровьем

Вот некоторые преимущества сервисов наблюдения за здоровьем:

  • Использование мощных алгоритмов, работающих непосредственно на платформе.
  • Экономит заряд батареи, используя конфигурации датчиков из сервисов наблюдения за здоровьем, оптимизированные для энергоэффективности.
  • Обеспечивает совместимость приложения с устройствами Wear OS 3 и более поздних версий. API сервисов наблюдения за здоровьем одинаков на всех устройствах с Wear OS 3 и более поздних версий, поэтому вам будет проще поддерживать актуальность приложения.
  • Проверяет согласованность данных во всех приложениях на одном устройстве, используя стандартизированные вычисления платформы.
  • Включает функции, связанные с активностью, в том числе возможность обнаруживать текущую тренировку, запущенную из другого приложения.

Благодаря этому разработчики могут сосредоточиться на создании уникальных функций и удобного интерфейса, а платформа будет предоставлять надежные и согласованные показатели, не расходуя много энергии.

Основные понятия сервисов наблюдения за здоровьем

При разработке с использованием сервисов наблюдения за здоровьем учитывайте следующее:

Типы данных

Сервисы наблюдения за здоровьем собирают и постоянно обновляют данные из всех доступных источников на устройстве. Данные делятся на две основные категории: данные, полученные в определенный момент времени, например HEART_RATE_BPM, и данные, полученные за определенный интервал времени, например DISTANCE.

Подробнее о типах данных…

События

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

Подробнее о целях тренировок и пассивных целях…

Типы тренировок

Сервисы наблюдения за здоровьем рассматривают тренировки как основную функцию и поддерживают множество типов упражнений, таких как бег или катание на лыжах. Во время тренировки сервисы наблюдения за здоровьем могут собирать показатели по выбранным типам данных и передавать их в приложение, которое управляет тренировкой.

Подробнее о типах упражнений…

Как создавать приложения с помощью сервисов наблюдения за здоровьем

Создавайте приложения, используя сервисы наблюдения за здоровьем, как описано в следующих разделах.

Пассивные действия

С помощью PassiveMonitoringClient приложение реализует PassiveListenerService, который получает обновления о типе данных или событии. Этот вариант подходит для долгосрочных проектов, в которых данные обновляются относительно редко.

Подробнее о пассивном обновлении данных…

Активные эксперименты

С помощью MeasureClient приложение регистрирует прослушиватели, чтобы быстро получать обновления данных. Это подходит для кратковременных действий, например когда пользователь смотрит на интерфейс приложения. Постарайтесь минимизировать время, в течение которого приложение использует зарегистрированный прослушиватель, поскольку это увеличивает частоту дискретизации датчика и, следовательно, энергопотребление. Этот API не предназначен для фонового сбора данных или отслеживания тренировок.

Подробнее о том, как выполнять точечные измерения показателей здоровья с помощью MeasureClient…

С помощью ExerciseClient ваше приложение может управлять тренировками пользователя, устанавливать цели и получать обновления о текущем состоянии тренировки. Если тренировка относится к вашему приложению, оно также может быстро получать обновления данных через этот API. ExerciseClient можно использовать, например, в приложении для бега, которое позволяет пользователям записывать пробежки, показывает текущие показатели на устройстве и сохраняет данные для дальнейшего анализа.

Подробнее о том, как записать тренировку с помощью ExerciseClient…

Тестирование с использованием синтетических данных

Чтобы проверить, получает ли приложение обновления данных от сервисов наблюдения за здоровьем, вручную настройте устройство так, чтобы оно передавало данные, как если бы пользователь занимался спортом.

Подробнее о том, как использовать синтетические данные в сервисах наблюдения за здоровьем…