API Wear Health Services (WHS) — обязательный компонент для всех устройств, работающих под управлением Wear OS 3 и выше, поскольку он обеспечивает согласованную интеграцию для разработчиков приложений в области здравоохранения и фитнеса. Разрабатывайте приложение таким образом, чтобы оно плавно адаптировалось к различным устройствам и их различным возможностям, обеспечивая совместимость и избегая проблем с пользовательским интерфейсом. Для этого объявляйте зависимости только для тех клиентов, которые использует ваше приложение. Кроме того, предоставьте приложению возможность отображать или удалять необязательные расширенные метрики в зависимости от их доступности.
Различные датчики генерируют данные с разной частотой, которая варьируется в зависимости от устройства, аппаратного обеспечения и платформы датчиков. Например, устройство может возвращать данные о частоте сердечных сокращений в одно время, а данные о местоположении — в другое. Создавайте приложения, которые могут получать независимые потоки данных с разными или с перекрывающимися временными метками.
В данном руководстве описаны ожидаемые модели поведения и типы данных, поддерживаемые различными клиентами в рамках Wear Health Services.
Клиент, выполняющий упражнения
В следующих разделах описывается ожидаемое поведение и типы данных объекта ExerciseClient .
Ожидаемое поведение
Для приложения ExerciseClient некоторые типы упражнений зависят от наличия определенных типов данных. Например, упражнения для инвалидных колясок доступны только в том случае, если поддерживается перемещение инвалидной коляски. Включайте и отключайте эти параметры в зависимости от их доступности на конкретном устройстве.
Большинство типов данных о физических упражнениях отбираются и передаются с интервалом в одну секунду, за некоторыми исключениями:
- В некоторых ситуациях данные о физических упражнениях обновляются более одного раза в секунду. Например, когда пользователь бежит, количество шагов обновляется более одного раза в секунду.
- Для некоторых типов данных обновление выполняется только в том случае, если текущее значение отличается от предыдущего.
Передача данных может осуществляться либо потоковым, либо пакетным способом. Потоковая передача данных происходит во время работы процессора приложения, что обычно соответствует включенному и интерактивному дисплею. После выключения дисплея или перехода в фоновый режим (включен, но не интерактивен) данные объединяются в пакеты для экономии энергии. Пакетные данные доставляются в приложение либо при повторном включении процессора приложения (например, при выходе часов из фонового режима), либо при заполнении буферов для пакетной обработки (это зависит от устройства). Частота дискретизации остается неизменной во время работы устройства в фоновом режиме, поэтому доставленный пакет данных по-прежнему содержит высокочастотные точки данных.
Типы данных формируются исключительно на основе данных, генерируемых датчиками часов. Например, данные о местоположении поступают исключительно от часов, а не от телефона.
Типы данных
API ExerciseClient позволяет запускать, приостанавливать, возобновлять и останавливать тренировки различных типов. Для каждого упражнения WHS определяет набор типов данных, которые становятся доступны для этого типа упражнения. Это экономит энергию и упрощает логику вашего приложения, поскольку датчики, не необходимые для данного упражнения, не включаются. Например, при начале бега данные о местоположении предоставляются и отслеживаются только для бега на открытом воздухе. При начале тренировки на велосипеде шаги не предоставляются и не отслеживаются. В следующих разделах приведено описание типов данных, поддерживаемых в ExerciseClient .
Типы данных об упражнениях доступны на всех устройствах.
Следующие типы данных об упражнениях доступны на всех устройствах.
- Для типов данных примеров существует соответствующий тип данных _STATS, который возвращает минимальное, максимальное и среднее значения из упражнения. Например, статистику PACE можно получить с помощью типа данных PACE_STATS.
- Для интервальных типов данных существует соответствующий тип данных _TOTAL, который возвращает суммарное значение за упражнение. Например, статистику по расстоянию можно получить с помощью типа данных DISTANCE_TOTAL.
| Метрическая система | Ожидаемые данные | Примечания к ожидаемому поведению |
| ЧАСТОТА СЕРДЦА В ЧАС | Ударов в минуту [Тип данных: Double] | Все устройства измеряют частоту сердечных сокращений один раз в секунду во время тренировки. Некоторые устройства сообщают значение 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. |
| ШАГОВ В МИНУТУ | [Тип данных: Длинный] | |
| WHEELCHAIR_PUSHES | [Тип данных: Длинный] | Подсчет количества толканий инвалидной коляски для использования в упражнениях с использованием инвалидных колясок. |
| REP_COUNT | [Тип данных: Длинный] | |
| КОЛИЧЕСТВО ЗАПЛЫВКОВ | [Тип данных: Длинный] | |
| КОЛИЧЕСТВО_КРУГОВ_ВЫПЯТКИ | [Тип данных: Длинный] |
Типы данных для каждого упражнения
Для каждого типа упражнений возвращаются разные типы данных. Возвращаемые типы данных соответствуют потребностям упражнения. Например, для типа упражнения «Велоспорт» не возвращается тип данных «Шаги». Используйте метод Capabilities во время выполнения, чтобы определить, какие типы данных поддерживаются на устройстве пользователя.
Как минимум, все виды упражнений предоставляют данные о частоте сердечных сокращений и количестве сожженных калорий . В зависимости от требований конкретного упражнения, другие виды упражнений могут поддерживать дополнительные типы данных.
Вот несколько примеров:
- Такие упражнения, как медитация или пилатес, поддерживают только частоту сердечных сокращений и сжигают калории.
- Такие виды физических упражнений, как баскетбол или бадминтон, способствуют увеличению частоты сердечных сокращений, сжиганию калорий, преодолению дистанции и увеличению количества шагов.
- Такие упражнения, как ходьба и бег, способствуют поддержанию нормального пульса, сжиганию калорий, преодолению расстояния, количеству шагов, скорости и темпу.
- Плавание помогает контролировать частоту сердечных сокращений, сжигать калории, преодолевать дистанцию и проплывать отрезки.
Клиент пассивного мониторинга
Для поддержки приложений, пассивно отслеживающих данные о здоровье и физической активности, такие как частота сердечных сокращений, на всех устройствах, работающих под управлением Wear OS, необходимы следующие типы данных.
и количество шагов. Каждый из этих типов данных должен быть получен исключительно из данных, генерируемых датчиками часов.
Ожидаемое поведение
Для экономии энергии показания датчиков, полученные с помощью пассивного мониторинга, сохраняются на микроконтроллере и передаются в службу мониторинга состояния здоровья пакетами. Эти пакетные результаты возвращаются с различными интервалами в зависимости от поведения системы. Например, пакеты возвращаются при заполнении буферов датчиков или при взаимодействии пользователя с дисплеем.
Не следует предполагать наличие каких-либо заранее определенных или предсказуемых интервалов пакетной обработки для каких-либо типов данных.
Типы данных пассивного мониторинга
| Метрическая система | Ожидаемые данные | Примечания |
| ЧАСТОТА СЕРДЦА В ЧАС | Ударов в минуту [Тип данных: Double] | Устройства могут передавать показания частоты сердечных сокращений с разными интервалами. Некоторые устройства могут снимать показания каждую секунду, другие — каждые десять минут. Эти интервалы недоступны для приложений. Приложения должны корректно адаптироваться к различным интервалам сбора данных. |
| ШАГИ_ЕЖЕДНЕВНО/ШАГИ | [Тип данных: Длинный] | Количество шагов за день — это общее число шагов, сделанных с момента последнего сброса, который запускается WHS в полночь. Сюда входят все шаги, сделанные во время паузы в активной тренировке. Количество шагов — это детализированная разница с момента последней проверки. |
| РАССТОЯНИЕ_ЕЖЕДНЕВНО/РАССТОЯНИЕ | метры [Тип данных: Double] | Расчет производится на основе данных акселерометра/шагов. Расчет не производится во время работы GPS, чтобы пользователи, отключившие службы определения местоположения, могли по-прежнему получать точные данные о количестве шагов. |
| СКОРОСТЬ | [метры / секунда] [Тип данных: Double] | |
| КАЛОРИИ_СУТОЧНО | ккал [Тип данных: Double] | Суточная норма калорий, включая активные калории и базальный метаболизм. Указанное здесь количество калорий учитывает рост, вес, возраст и пол пользователя, как это указано в системных настройках. Количество калорий не корректируется в соответствии с данными профиля пользователя, собранными в вашем приложении. |
| ШАГИ ВЫПОЛНЕНИЯ (необязательно) | [Тип данных: Длинный] | Разница в количестве шагов как во время упражнения, так и в другое время. Отслеживайте оба показателя одновременно. |
| ШАГОВЫЕ СТУПЕНИ (необязательно) | [Тип данных: Длинный] | |
| НАБОР ВЫСОТЫ | метры [Тип данных: Double] | Включает только положительные изменения высоты. |
| ПОТЕРЯ ВЫСОТЫ | метры [Тип данных: Double] | Включает только отрицательные изменения высоты. |
| ЭТАЖИ_ЕЖЕДНЕВНО | [Тип данных: Double] | Может быть представлен в виде «частичных» этажей. |
Пассивный мониторинг ежедневных целей
| Метрическая система | Ожидаемые данные | Примечания |
| ШАГИ_ЕЖЕДНЕВНО | [Тип данных: Длинный] | Ежедневное количество шагов, включая шаги, сделанные во время паузы в активной тренировке, — это общее количество шагов, сделанных с момента последнего сброса. Сброс WHS происходит в полночь. |
| ЭТАЖИ_ЕЖЕДНЕВНО | [Тип данных: Double] | Может быть представлен в виде «частичных» этажей лестницы. |
| КАЛОРИИ_СУТОЧНО | ккал [Тип данных: Double] | Суточная норма калорий, включающая активные калории и базальный метаболизм. |
| РАССТОЯНИЕ_ЕЖЕДНЕВНО | метры [Тип данных: Double] | Расчет производится на основе данных акселерометра или количества шагов. Не используйте данные GPS для расчета, чтобы пользователи, отключившие службы определения местоположения, могли по-прежнему получать точные данные о количестве шагов. |
| Ежедневный прирост высоты | метры [Тип данных: Double] | Включает только положительные изменения высоты. |
MeasureClient
Используйте MeasureClient для измерения частоты сердечных сокращений в заданный момент времени.
Ожидаемое поведение
MeasureClient и PassiveClient в некотором роде похожи. Оба предоставляют непакетированные статистические данные о состоянии здоровья, не связанные с тренировкой. Оба можно использовать для измерения частоты сердечных сокращений, но основное различие заключается в том, что MeasureClient включает информацию о доступности данных о частоте сердечных сокращений, а PassiveClient нет.
Типы данных
| Метрическая система | Ожидаемые данные | Примечания |
| ЧАСТОТА СЕРДЦА В ЧАС | Ударов в минуту [Тип данных: Double] | Также включает в себя доступность. |
Поддерживаемые функции
Помимо типов данных об упражнениях и типов данных пассивного мониторинга, устройства поддерживают дополнительные функции для запуска событий, таких как начало тренировки, и измерения состояния, например, сон или бодрствование. Некоторые из этих функций доступны на всех устройствах, а другие — только на некоторых.
Триггеры событий
Все устройства поддерживают следующие распространенные триггеры:
- Ежедневные цели по пройденному расстоянию и количеству шагов.
- Целевые показатели физической активности: количество шагов, пройденное расстояние и продолжительность тренировки.
Другие устройства могут поддерживать более сложные триггеры событий. В качестве примеров можно привести следующие:
- Подсчет кругов во время плавания
- Целевые показатели по количеству сожженных калорий во время тренировки
- Цели упражнений для достижения мгновенной скорости
Штаты
Все устройства поддерживают базовую функциональность состояния. Функциональность состояния определяет, находится ли пользователь в активном состоянии во время выполнения упражнения или нет.
Другие устройства могут предоставлять дополнительные функции, связанные с состоянием устройства. К таким дополнительным функциям относится определение момента автоматической паузы или возобновления тренировки, а также состояния бодрствования или сна пользователя.
Предупреждения о состоянии здоровья при пассивном мониторинге
Некоторые устройства поддерживают оповещения о состоянии здоровья. Эти функции поддерживаются не на всех устройствах. К таким оповещениям относятся, например, обнаружение нарушений сердечного ритма или падение.
{% verbatim %}Рекомендуем вам
- Примечание: текст ссылки отображается, когда JavaScript отключен.
- Активные данные и упражнения
- Медицинские сервисы на Wear OS