API Wear Health Services (WHS) является обязательным компонентом для всех устройств под управлением Wear OS 3 и более поздних версий, поскольку он обеспечивает единообразную интеграционную платформу для разработчиков приложений для здоровья и фитнеса. Создавайте приложение, которое будет легко адаптироваться к различным устройствам и их различным возможностям, чтобы поддерживать совместимость между устройствами и избегать проблем с пользовательским интерфейсом. Для этого объявляйте зависимости только для тех клиентов, которые использует ваше приложение. Кроме того, предоставьте приложению возможность отображать или удалять необязательные расширенные метрики в зависимости от их доступности.
Различные датчики генерируют данные с разной частотой, которая различается в зависимости от устройства в зависимости от аппаратного обеспечения и платформы датчика. Например, устройство может возвращать данные о частоте сердечных сокращений в одной временной метке, а о местоположении — в другой. Создавайте приложения, которые могут получать независимые потоки данных в разных временных метках или в перекрывающихся временных метках.
В этом руководстве описываются ожидаемые поведения и типы данных, поддерживаемые различными клиентами в Wear Health Services.
Клиент упражнения
В следующих разделах описывается ожидаемое поведение и типы данных ExerciseClient
.
Ожидаемое поведение
Для ExerciseClient
некоторые типы упражнений зависят от доступности определённых типов данных. Например, упражнения для инвалидной коляски доступны только при поддержке толкания инвалидной коляски. Включайте и отключайте эти опции в зависимости от их доступности на данном устройстве.
Большинство типов данных упражнений выбираются и предоставляются с интервалом в одну секунду, за некоторыми исключениями:
- В некоторых ситуациях некоторые типы данных о тренировках обновляются чаще, чем раз в секунду. Например, когда пользователь бежит, количество шагов обновляется чаще, чем раз в секунду.
- Для некоторых типов данных обновление выполняется только в том случае, если текущее значение отличается от предыдущего.
Доставка данных может осуществляться как в потоковом, так и в пакетном режиме. Данные передаются потоком, пока процессор приложения включен, что обычно происходит при включенном дисплее и интерактивном режиме. После выключения дисплея или перехода его в режим ожидания (включен, но не интерактивен) данные пакетируются для экономии энергии. Пакетированные данные доставляются в приложение либо при повторном включении процессора приложения, либо при выходе часов из режима ожидания, либо при заполнении буферов для пакетной обработки, что зависит от устройства. Частота дискретизации остается неизменной, пока устройство находится в режиме ожидания, поэтому доставленный пакет данных по-прежнему содержит высокочастотные точки данных.
Типы данных формируются исключительно на основе данных, полученных с датчиков часов. Например, данные о местоположении поступают исключительно с часов, а не с телефона.
Типы данных
API ExerciseClient
позволяет запускать, приостанавливать, возобновлять и останавливать тренировки различных типов. Для каждого упражнения WHS определяет набор типов данных, доступных для этого типа. Это экономит энергию и упрощает логику приложения, поскольку датчики, не требуемые для данного упражнения, не включаются. Например, при начале пробежки данные о местоположении предоставляются и отслеживаются только для пробежки на открытом воздухе. При начале велотренировки шаги не предоставляются и не отслеживаются. В следующих разделах представлено описание типов данных, поддерживаемых ExerciseClient
.
Типы данных упражнений доступны на всех устройствах
Следующие типы данных упражнений доступны на всех устройствах.
- Примеры типов данных имеют соответствующий тип данных _STATS, который возвращает минимальные, максимальные и средние значения для упражнения. Например, статистику PACE можно получить с помощью типа данных PACE_STATS.
- Интервальным типам данных соответствует тип данных _TOTAL, который возвращает кумулятивное значение упражнения. Например, статистику DISTANCE можно получить с помощью типа данных DISTANCE_TOTAL.
Метрическая | Ожидаемые данные | Заметки об ожидаемом поведении |
HEART_RATE_BPM | Ударов в минуту [Тип данных: Double] | Все устройства измеряют частоту сердечных сокращений (BPM) один раз в секунду во время тренировки. Некоторые устройства передают значение BPM каждую секунду. Некоторые устройства передают значение BPM только после того, как оно изменилось с момента предыдущего значения. Не ожидайте, что все устройства будут получать значение BPM с интервалом в одну секунду. |
РАСПОЛОЖЕНИЕ | Широта и долгота [Тип данных: Double] | Данные о местоположении основаны только на GPS-навигации часов. Не ожидайте, что данные о местоположении будут получены от Fused Location Provider или других сервисов Android. Каждая точка данных также включает значение точности (также известное как ошибка горизонтального положения) и доступность. |
ШАГИ | [Тип данных: Длинный] | Количество шагов — это общее количество шагов, пройденных за все время выполнения упражнения, без учета времени, когда упражнение приостановлено. |
РАССТОЯНИЕ | Метры [Тип данных: Double] | Рассчитывается на основе местоположения, основанного на GPS (при наличии), и на основе количества шагов (в противном случае). Общее значение относится к общей продолжительности тренировки, без учёта времени, когда тренировка была приостановлена. |
СКОРОСТЬ | [метры / секунда] [Тип данных: Double] | Возвращает минимальное, максимальное и среднее значения за всё время выполнения упражнения, не включая время, когда упражнение приостановлено. |
ШАГ | [секунды/метр] [Тип данных: Double] | Значение по умолчанию — 0, если скорость равна 0. Средние значения рассчитываются за все время выполнения упражнения, не включая время, когда упражнение приостанавливалось. |
УВЕЛИЧЕНИЕ_ВЫСОТЫ | Метры. [Тип данных: Double] | Положительные изменения высоты. Учитывается общая сумма за всё время выполнения упражнения, без учёта времени, когда упражнение приостанавливалось. |
ОБЩЕЕ_КОЛИЧЕСТВО | ккал [Тип данных: Double] | Количество сожжённых активных калорий добавляется к базовому обмену веществ. Здесь сожжённые калории учитывают рост, вес, возраст и пол пользователя, указанные в настройках системы. Калории не учитывают данные профиля пользователя, собранные в вашем приложении. Общее количество калорий указывается за всё время тренировки, без учёта времени, когда она была приостановлена. |
Дополнительные типы данных для упражнений
Следующий список типов данных доступен только на некоторых устройствах. Полный список DataTypes
см. в справочнике Jetpack. Если DataType
отсутствует в предыдущем списке «обязательных/гарантированных», он необязателен.
См. следующие примеры необязательных типов данных. Этот список не является исчерпывающим:
Метрическая | Ожидаемые данные | Заметки об ожидаемом поведении |
АБСОЛЮТНАЯ_ВЫСОТА | [Тип данных: Double] | |
ПОТЕРЯ_ВЫСОТЫ | Метры [Тип данных: Double] | Отрицательное изменение высоты. Значение положительное. Например, потеря высоты на 1 м возвращается как 1, а не -1. |
STEPS_PER_MINUTE | [Тип данных: Длинный] | |
КОЛЯСКИ_ИНВАЛИДНЫЕ_КОЛЯСКИ | [Тип данных: Длинный] | Количество отталкиваний инвалидной коляски для использования в упражнениях с использованием инвалидной коляски. |
REP_COUNT | [Тип данных: Длинный] | |
SWIM_STROKE_COUNT | [Тип данных: Длинный] | |
SWIM_LAP_COUNT | [Тип данных: Длинный] |
Типы данных для каждого упражнения
Для каждого типа упражнений возвращаются различные типы данных. Возвращаемые типы данных соответствуют потребностям упражнения. Например, для типа упражнений «ВЕЛОСИПЕД» не возвращается тип данных «ШАГИ». Используйте метод Capabilities
во время выполнения, чтобы определить, какие типы данных поддерживаются на устройстве пользователя.
Все типы упражнений возвращают как минимум данные о частоте пульса и сожжённых калориях . Другие упражнения могут поддерживать дополнительные типы данных в зависимости от требований к ним.
Вот несколько примеров:
- Такие упражнения, как медитация или пилатес, поддерживают только частоту сердечных сокращений и количество калорий.
- Такие упражнения, как баскетбол или бадминтон, отслеживают частоту сердечных сокращений, количество сожженных калорий, расстояние и количество шагов.
- Такие упражнения, как ходьба и бег, помогают контролировать частоту сердечных сокращений, количество сожженных калорий, расстояние, количество шагов, скорость и темп.
- Плавание отслеживает частоту сердечных сокращений, количество калорий, дистанцию и количество кругов.
Клиент пассивного мониторинга
Следующие типы данных необходимы для всех устройств под управлением Wear OS для поддержки приложений, которые пассивно отслеживают данные о здоровье и физической форме, такие как частота сердечных сокращений.
и количество шагов. Каждый из этих типов данных должен быть получен исключительно на основе данных, полученных с датчиков часов.
Ожидаемое поведение
Для экономии энергии показания датчиков, полученные с помощью пассивного мониторинга, сохраняются в микроконтроллере и передаются в пакетном режиме в службы здравоохранения. Эти пакетные результаты возвращаются с разной периодичностью в зависимости от поведения системы. В качестве примера можно привести отправку пакетов при заполнении буферов датчиков или при взаимодействии пользователя с дисплеем.
Не предполагайте никаких предопределенных или предсказуемых интервалов пакетной обработки для любых типов данных.
Типы данных пассивного мониторинга
Метрическая | Ожидаемые данные | Примечания |
HEART_RATE_BPM | Ударов в минуту [Тип данных: Double] | Устройства могут возвращать показания пульса с разной периодичностью. Некоторые устройства могут снимать показания каждую секунду. Другие — каждые десять минут. Эти интервалы недоступны для приложений. Приложения должны корректно адаптироваться к разным интервалам измерения. |
STEPS_DAILY/ШАГИ | [Тип данных: Длинный] | Ежедневные шаги — это общее количество шагов, сделанных с момента последнего сброса, который WHS запускает в полночь. Это включает в себя все шаги, сделанные во время приостановки активной тренировки. Шаги — это детальная дельта с момента последней проверки. |
DISTANCE_DAILY/РАССТОЯНИЕ | метров [Тип данных: Double] | Рассчитывается по данным акселерометра/шагов. Не выполняйте расчёты во время использования GPS, чтобы пользователи, отключившие службы определения местоположения, могли получать точные данные о количестве шагов. |
СКОРОСТЬ | [метры / секунда] [Тип данных: Double] | |
КАЛОРИИ_ЕДИНИЧНО | ккал [Тип данных: Double] | Количество калорий за день, включая активные калории и базовый обмен веществ (BMR). Значение калорий, отображаемое здесь, учитывает рост, вес, возраст и пол пользователя, указанные в настройках системы. Калории не корректируются в соответствии с данными профиля пользователя, собранными в вашем приложении. |
RUNNING_STEPS (необязательно) | [Тип данных: Длинный] | Дельта шагов как во время тренировки, так и в других ситуациях. Отслеживайте оба показателя одновременно. |
WALKING_STEPS (необязательно) | [Тип данных: Длинный] | |
УВЕЛИЧЕНИЕ_ВЫСОТЫ | метров [Тип данных: Double] | Включает только положительные дельты высот |
ПОТЕРЯ_ВЫСОТЫ | метров [Тип данных: Double] | Включает только отрицательные дельты высот |
ЭТАЖИ_ЕЖЕДНЕВНО | [Тип данных: Double] | Могут быть представлены как «частичные» этажи |
Пассивный мониторинг ежедневных целей
Метрическая | Ожидаемые данные | Примечания |
STEPS_DAILY | [Тип данных: Длинный] | Количество шагов за день, включая шаги, сделанные во время приостановки активной тренировки, — это общее количество шагов, сделанных с момента последнего сброса. Сброс WHS происходит в полночь. |
ЭТАЖИ_ЕЖЕДНЕВНО | [Тип данных: Double] | Могут быть представлены в виде «частичных» этажей лестницы. |
КАЛОРИИ_ЕДИНИЧНО | ккал [Тип данных: Double] | Калории в день, включая активные калории и BMR. |
DISTANCE_DAILY | метров [Тип данных: Double] | Рассчитывается по данным акселерометра или счётчика шагов. Не рассчитывайте это с помощью GPS, чтобы пользователи, отключившие службы определения местоположения, могли получать точные данные о количестве шагов. |
ЕЖЕДНЕВНЫЙ_ПОДЪЕМ_ВЫСОТЫ | метров [Тип данных: Double] | Включает только положительные дельты высот |
MeasureClient
Используйте MeasureClient
для измерения частоты сердечных сокращений в определенный момент.
Ожидаемое поведение
MeasureClient
и PassiveClient
во многом похожи. Оба приложения предоставляют непакетированную статистику о состоянии здоровья, не связанную с тренировками. Оба приложения можно использовать для измерения пульса, но главное отличие заключается в том, что MeasureClient
предоставляет данные о наличии пульса, а PassiveClient
— нет.
Типы данных
Метрическая | Ожидаемые данные | Примечания |
HEART_RATE_BPM | Ударов в минуту [Тип данных: Double] | Также включает в себя наличие |
Поддерживаемые функции
Помимо типов данных для упражнений и пассивного мониторинга, устройства поддерживают дополнительные функции для регистрации событий, таких как начало тренировки, и измерения состояния, например, сна или бодрствования. Некоторые из этих функций доступны на всех устройствах, а другие — только на некоторых.
Триггеры событий
Все устройства поддерживают следующие общие триггеры:
- Ежедневные цели по расстоянию и шагам
- Цели упражнений по количеству шагов, расстоянию и продолжительности.
Другие устройства могут поддерживать более сложные триггеры событий. Вот некоторые примеры:
- Подсчет кругов во время плавания
- Цели упражнений по сжиганию калорий
- Цели упражнений для мгновенной скорости
Штаты
Все устройства поддерживают базовую функциональность состояния. Функциональность состояния определяет, находится ли пользователь в состоянии активного упражнения или нет.
Другие устройства могут предоставлять дополнительные функции отслеживания состояния. Некоторые из них включают в себя определение автоматической приостановки или возобновления упражнения, а также времени бодрствования или сна пользователя.
Оповещения о состоянии здоровья при пассивном мониторинге
Некоторые устройства поддерживают оповещения о состоянии здоровья. Эти функции поддерживаются не на всех устройствах. Некоторые оповещения о состоянии здоровья включают обнаружение отклонений сердечного ритма или падений.
{% дословно %}Рекомендовано для вас
- Примечание: текст ссылки отображается, когда JavaScript отключен.
- Активные данные и упражнения
- Медицинские услуги на Wear OS