Здоровье

Создавайте высокопроизводительные приложения для здоровья независимо от платформы.
Последнее обновление Стабильный выпуск Кандидат на выпуск Бета-версия Альфа-релиз
16 октября 2024 г. - 1.0.0-rc02 - 1.1.0-альфа04

Объявление зависимостей

Чтобы добавить зависимость от Health, необходимо добавить в свой проект репозиторий Google Maven. Для получения дополнительной информации прочтите репозиторий Google Maven .

Добавьте зависимости для нужных вам артефактов в файл build.gradle для вашего приложения или модуля:

классный

dependencies {
    implementation "androidx.health:health-services-client:1.1.0-alpha03"
}

Котлин

dependencies {
    implementation("androidx.health:health-services-client:1.1.0-alpha03")
}

Обратная связь

Ваши отзывы помогают сделать Jetpack лучше. Дайте нам знать, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете добавить свой голос к существующей проблеме, нажав кнопку со звездочкой.

Создать новую задачу

Дополнительную информацию см . в документации по системе отслеживания проблем .

Клиент Health Connect версии 1.0

Версия 1.0.0-альфа04

24 августа 2022 г.

Начиная с версии 1.0.0-alpha04, androidx.health:health-connect-client был перенесен в androidx.health.connect:connect-client . Для будущих выпусков используйте androidx.health.connect:connect-client и соответствующие примечания к выпуску на нашей странице Health Connect .

Для миграции просто измените импорт зависимостей с androidx.health:health-connect-client:1.0.0-alpha03 на androidx.health.connect:connect-client:1.0.0-alpha04 .

Версия 1.0.0-альфа03

27 июля 2022 г.

Выпущен androidx.health:health-connect-client:1.0.0-alpha03 . Версия 1.0.0-alpha03 содержит эти коммиты.

Новые возможности

  • Краткое изложение новых изменений API: к API чтения, записи и агрегирования добавлен набор модулей. Теперь приложения могут получать или записывать записи в выбранных ими единицах измерения, например в граммах или миллиграммах для питательных веществ NutritionRecord .

Изменения API

  • Исправьте List<DataOrigin> , чтобы он был Set<DataOrigin> для различных объектов ответа на запрос. ( I42342 )
  • Исправьте единицу измерения общего количества калорий в меню «Мощность->Энергия». ( I0b429 )
  • Перемещены образцы классов серий внутри записей серий ( Ica9bb ):
    • CyclingPedalingCadence -> CyclingPedalingCadenceRecord.Sample
    • HeartRate -> HeartRateRecord.Sample
    • StepsCadence -> StepsCadenceRecord.Sample
  • Устаревший класс HealthDataRequestPermission в пользу PermissionController.createRequestPermissionActivityContract ; Это способствует лучшей обнаруживаемости и унифицированной параметризации. ( I81e7f )
  • В объем добавлены жидкие унции США. ( I5f03d )
  • Добавлен тип единицы измерения скорости ( I1d574 ).
  • Добавлен тип единицы процента ( I08f23 ).
  • Добавлен тип единицы измерения давления ( Ifb01f ).
  • Добавлен тип единицы массы ( Ifd81a ).
  • Добавлен тип единицы измерения объема ( I59ad1 ).
  • Добавлен тип силового агрегата. Пример класса серии Power перемещен внутри класса PowerRecord . ( I5b1e5 )
  • Добавлен тип единицы энергии ( I983ae ).
  • Добавлен тип единицы измерения температуры ( I4cdb5 ).
  • Переименуйте ссылки Activity, относящиеся к упражнениям, включая ( I3f936 ):
    • Переименован ActivityLap -> ExerciseLapRecord
    • Переименовано ActivityEvent -> ExerciseEventRecord
    • Переименованные Repetitions -> ExerciseRepetitionsRecord
    • Переименован ActivitySession -> ExerciseSessionRecord
  • Перемещены метаданные пакета, вложенные в записи. ( Ie0835 )
  • Используемая единица длины во всех оставшихся записях ( Ib10dd ):
    • ActivityLapRecord
    • ElevationGainedRecord
    • HeightRecord
    • HipCircumferenceRecord
    • WaistCircumferenceRecord
  • Добавлен тип единицы длины ( Idae39 ).
  • Обновите терминологию описания CervicalMucus ( I25a2b ):
    • CervicalMucus.Amount -> CervicalMucusRecord.Texture
    • CervicalMucus.Appearance -> CervicalMucusRecord.Sensation
  • Добавлен суффикс «Record» ко всем именам классов записей ( I1ffc2 ).

Исправления ошибок

  • Исправлены проблемы с proguard, когда библиотека собрана с использованием версии Release и minifyEnabled true. ( I78933 )
  • Скрывает документацию, не предназначенную для публичного использования. ( I7a08f )
  • Устраняет проблему в клиентах, у которых могут быть свои собственные зависимости protobuf. (https://android-review.googlesource.com/c/platform/frameworks/support/+/2105430).

Версия 1.0.0-альфа02

1 июня 2022 г.

Выпущен androidx.health:health-connect-client:1.0.0-alpha02 . Версия 1.0.0-alpha02 содержит эти коммиты.

Изменения API

  • Устарели hasMetric и getMetric в AggregationResult , добавлены операторы contains и get ( I7cc7c ).
  • Добавляет OvulationTest.Result.HIGH и OvulationTest.Result.INCONCLUSIVE . ( I9f9c4 )

Исправления ошибок

  • Уменьшите требования к SDK до 26. ( I6d201 ).

Версия 1.0.0-альфа01

11 мая 2022 г.

Выпущен androidx.health:health-connect-client:1.0.0-alpha01 . Версия 1.0.0-alpha01 содержит эти коммиты.

Новые возможности

  • API для чтения записей о фитнесе и здоровье, которыми делятся другие приложения.
  • API для записи данных о фитнесе и состоянии здоровья, которыми можно поделиться с другими приложениями.
  • API для получения агрегированных показателей для доступных записей.
  • API для получения дополнительных изменений (вставки, обновления или удаления) записей другими приложениями.
  • API для запроса у пользователей разрешений на работоспособность.
  • API для проверки разрешений или отзыва предоставленных разрешений на работоспособность.

Клиент служб здравоохранения версии 1.1

Версия 1.1.0-альфа04

16 октября 2024 г.

androidx.health:health-services-client:1.1.0-alpha04 , androidx.health:health-services-client-external-protobuf:1.1.0-alpha04 и androidx.health:health-services-client-proto:1.1.0-alpha04 выпущены. Версия 1.1.0-alpha04 содержит эти коммиты .

Исправления безопасности

  • После этого изменения androidx компилируется с protobuf 4.28.2 для устранения CVE-2024-7254 . Обновите свою зависимость от androidx.health:health-services-client до последней версии 1.1.0-alpha04, чтобы устранить риск уязвимости.

Версия 1.1.0-альфа02

13 декабря 2023 г.

Выпущен androidx.health:health-services-client:1.1.0-alpha02 . Версия 1.1.0-alpha02 содержит эти коммиты.

Изменения API

  • Используйте единый источник достоверной информации для поддерживаемых ExerciseEvent . ( I03308 )

Исправления ошибок

  • Незначительные исправления ошибок и улучшения документации.

Версия 1.1.0-альфа01

9 августа 2023 г.

Выпущен androidx.health:health-services-client:1.1.0-alpha01 . Версия 1.1.0-alpha01 содержит эти коммиты.

Новые возможности

  • API-интерфейсы ExerciseEvent были добавлены вместе с первым конкретным событием: GolfShotEvent . Примитивы ExerciseEvent позволяют разработчикам запрашивать поддержку и получать уведомления, когда часы обнаруживают, что что-то произошло. GolfShotEvent , например, позволяет разработчикам получать уведомления, когда пользователь выполняет удар в гольф, в дополнение к распознанному типу удара.

Изменения API

  • Разрешите клиентам WHS SDK использовать функции GolfShotEvent . ( I76b03 )

Исправления ошибок

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

Клиент служб здравоохранения версии 1.0

Версия 1.1.0-альфа03

14 мая 2024 г.

Выпущен androidx.health:health-services-client:1.1.0-alpha03 . Версия 1.1.0-alpha03 содержит эти коммиты .

Новые возможности

  • Представлены API-интерфейсы DebouncedGoal , которые позволяют отслеживать цель для образца типа данных или типа данных образца статистики во время тренировки с функциями устранения дребезга ( initialDelay и durationAtThreshold ). ( I09be9 )
  • Добавлен следующий образец расширенных текущих показателей и статистических DataTypes . ( I0b8b5 ):
    • Ground Contact Time
    • Vertical Oscillation
    • Vertical Ratio
    • Stride Length

Изменения API

  • Добавлен DataType ELEVATION_GAIN_DAILY . ( I059d1 )
  • Добавлен DataType SWIM_LAP_COUNT_TOTAL в качестве агрегированного DataType для SWIM_LAP_COUNT . ( I0beeb )

Исправления ошибок

  • Исправлены различные проблемы для повышения надежности IPC.

Версия 1.0.0-rc02

3 апреля 2024 г.

Выпущен androidx.health:health-services-client:1.0.0-rc02 . Версия 1.0.0-rc02 содержит эти коммиты . Это выпуск только с исправлением ошибок и не содержит изменений API.

Исправления ошибок

  • Исправлены различные проблемы для повышения надежности IPC.
  • Исправлена ​​проблема, из-за которой вызов startExercise одновременно с prepareExercise мог привести к исключению ConcurrentModificationException ( 4e37773 ).
  • Улучшенная документация

Версия 1.0.0-rc01

26 июля 2023 г.

Выпущен androidx.health:health-services-client:1.0.0-rc01 . Версия 1.0.0-rc01 содержит эти коммиты.

Новые возможности

  • Службы здравоохранения перешли на версию 1.0.0-rc01 после стабилизации в бета-версии.

Изменения API

  • Объединены общедоступные и экспериментальные файлы API для путей h-thru m. ( Ic4630 , б/278769092 )
  • Н/Д, изменения файлов API — это просто методы изменения порядка. ( I5fa95 )

Версия 1.0.0-бета03

5 апреля 2023 г.

Выпущен androidx.health:health-services-client:1.0.0-beta03 . Версия 1.0.0-beta03 содержит эти коммиты.

Новые возможности

BatchingMode теперь можно настроить для доставки пакетных данных о тренировках с заданным интервалом вместо интервала по умолчанию во время активного упражнения, либо при запуске упражнения с помощью ExerciseConfig , либо во время с помощью метода переопределения. Поддержка этого будет включена в предстоящем выпуске Health Services в Google Play Store, и ее можно будет проверить с помощью возможностей упражнений. Примечание. Режимы пакетной обработки вступают в силу, когда устройство находится в неинтерактивном состоянии, и приводят к увеличению энергопотребления.

Изменения API

  • Вызов HealthServicesException при сбое функции приостановки overrideBatchingModesForActiveExercise ( Ifd387 )
  • Введены функции приостановки для API асинхронного overrideBatchingModesForActiveExercise что делает их более удобными для Kotlin ( I7dd15 ).
  • BatchingMode переопределяет необязательный параметр в ExerciseConfig ( Id22e9 )

Исправления ошибок

  • Небольшие исправления DataType и ExerciseUpdate ( 5e185f ).

Версия 1.0.0-beta02

11 января 2023 г.

Выпущен androidx.health:health-services-client:1.0.0-beta02 . Версия 1.0.0-beta02 содержит эти коммиты.

Новые возможности

  • Добавлены функции расширения suspend для существующих асинхронных API-интерфейсов ListenableFuture в ExerciseClient , PassiveMonitoringClient и MeasureClient для лучшей поддержки Kotlin. ( Иадея4 )
  • Добавлен API-интерфейс ExerciseTypeConfig , который позволяет обновлять данные во время текущих упражнений. Добавлен GolfExerciseTypeConfig для поддержки обновления ExerciseTypeConfig во время упражнений по гольфу. ( I4c539 )

Изменения API

  • Выдавать HealthServicesException в функциях приостановки ( I5e509 ).
  • Добавьте еще один конструктор для обратной совместимости ( Iddeda )
  • Выдавать RuntimeException в функциях приостановки ( I53bca )
  • Удалить реализацию исключения по умолчанию ( Id947f ).
  • Добавление аннотации @JvmDefaultWithCompatibility ( I8f206 )

Исправления ошибок

  • Добавьте в kdoc для ясности ( Ide285 )
  • Разрешить отслеживание пассивного мониторинга для целей, только если отслеживаются те же типы данных ( Ibed8d ).

Версия 1.0.0-бета01

24 октября 2022 г.

Выпущен androidx.health:health-services-client:1.0.0-beta01 . Версия 1.0.0-beta01 содержит эти коммиты.

Новые возможности

  • Добавлена ​​возможность прослушивания событий работоспособности через PassiveMonitoringClient , первое событие: HealthEvent.FALL_DETECTED .

  • Новые типы упражнений:

    • ALPINE_SKIING
    • BACKPACKING
    • CROSS_COUNTRY_SKIING
    • HORSE_RIDING
    • INLINE_SKATING
    • MOUNTAIN_BIKING
    • ORIENTEERING
    • ROLLER_SKATING
    • YACHTING
  • Новые типы данных:

    • ELEVATION_LOSS
    • GOLF_SHOT_COUNT

Изменения API

  • Обновлен способ моделирования данных : модель данных и способы представления DataType , DataPoint и их базовых значений были пересмотрены. Эффект верхнего уровня заключается в том, что API теперь стали намного более явными и типобезопасными.
  • Location DataPoint больше не представляются как DoubleArray , а как строго типизированный объект LocationData .
  • Перемещено на новый набор API-интерфейсов пассивного прослушивателя:
    • Трансляция была заменена PassiveListenerService .
    • Существующие прослушиватели были заменены одним прослушивателем: PassiveListenerCallback .
  • В манифест служб работоспособности добавлен тег <queries> , чтобы приложениям больше не нужно было указывать его в своем собственном манифесте (при условии, что в их системе сборки включено объединение манифестов).
  • Удалены многие ExerciseState для отображения состояния упражнения, которые заканчиваются/завершены, и добавлены новые состояния упражнения ENDING и ENDED . Теперь они объединены с ExerciseEndReason , чтобы представить полный спектр предыдущих состояний.
  • PassiveListenerConfig setPassiveGoals переименован в setDailyGoals чтобы лучше отражать, что мы поддерживаем только ежедневные пассивные цели.
  • PassiveGoal теперь всегда REPEATED , пассивная TriggerFrequency удалена.
  • Все параметры Long и Double аннотированы с помощью @FloatRange .
  • В ExerciseConfig добавлено свойство swimmingPoolLengthMeters , которое можно указать дополнительно, чтобы улучшить расчет расстояния при плавании в бассейне.
  • Устаревший вариант ExerciseUpdate.activeDuration . Вместо этого используйте ExerciseUpdate.activeDurationCheckpoint .
  • API- flushExerciseAsync() переименован flushAsync() в ExerciseClient .
  • Measure.registerCallback переименован в Measure.registerMeasureCallback .
  • Общие изменения в названии:
    • Свойства расстояния теперь имеют суффикс meters .
    • Имена методов обратного вызова теперь имеют прошедшее время.
    • Большинство сокращений были удалены ( HrAccuracy теперь называется HeartRateAccuracy ).
    • Свойства, соответствующие шаблону enableFoo , теперь называются isFooEnabled .
  • Мигрировал из Enums.
  • Время, представленное Double , теперь представлено Duration .
  • Функции, возвращающие ListenableFuture<Void?> теперь возвращают ListenableFuture<Void> .
  • Функции, которые принимают обратный вызов, теперь всегда имеют обратный вызов в качестве последнего параметра.
  • Классы со строителями теперь всегда имеют публичные конструкторы.
  • Функции регистрации больше не возвращают ListenableFuture и вместо этого передают статус регистрации предоставленному обратному вызову.
  • KDocs теперь улучшен.
  • Открытые классы больше не расширяют ProtoParcelable .

Исправления ошибок

  • Общие улучшения надежности IPC ( I3b1e2 )

Версия 1.0.0-альфа03

3 ноября 2021 г.

Выпущен androidx.health:health-services-client:1.0.0-alpha03 . Версия 1.0.0-alpha03 содержит эти коммиты.

Новые возможности

  • SDK автоматически перерегистрирует запросы на регистрацию показателей, прослушивателей упражнений и обратных вызовов пассивного мониторинга в случае разрыва соединения IPC с APK Health Services.

Изменения API

  • minSdkVersion библиотеки SDK повышен до уровня API 30, поскольку клиент Health Services в настоящее время поддерживается только на Wear3.

Версия 1.0.0-альфа02

29 сентября 2021 г.

Выпущен androidx.health:health-services-client:1.0.0-alpha02 . Версия 1.0.0-alpha02 содержит эти коммиты.

Изменения API

  • ExerciseClient теперь поддерживает подготовку упражнения. Это позволяет клиентам прогревать датчики и ждать, например, исправления GPS, прежде чем приступить к тренировке.
  • Введены классы CumulativeDataPoints и StatisticalDataPoints AggregateDataPoint для лучшего моделирования совокупных показателей, отслеживаемых во время активного упражнения. CumulativeDataPoints хранит совокупные значения типов агрегированных интервальных данных (например, общее расстояние во время тренировки), а StatisticalDataPoints моделирует агрегированные значения выборочных точек данных (таких как минимальное, максимальное и среднее значение HeartRateBpm). Он заменяет предыдущие типы данных AGGREGATE_* , и доступ к ним можно получить в УпражненииUpdate через getLatestAggregateMetrics() . AGGREGATE_* Типы данных больше не поддерживаются.
  • События PassiveMonitoring были переименованы в PassiveGoals , которые поддерживают установку целей и получение уведомлений при достижении этих целей для таких типов данных, как ежедневные показатели (т. е. DAILY_STEPS).
  • Улучшено моделирование точности и доступности сердечного ритма и местоположения за счет введения новых классов HrAccuracy, LocationAccuracy и LocationAvailability.
  • Улучшено наименование ExerciseConfig и новые поля PassiveMonitoringConfig , а также добавлено имя ExerciseConfig.shouldEnableGps для запроса данных с поддержкой GPS.

Исправления ошибок

  • Переход на транспорт IPC с поддержкой прототипов для лучшей поддержки обратной совместимости.

Версия 1.0.0-альфа01

18 мая 2021 г.

Выпущен androidx.health:health-services-client:1.0.0-alpha01 . Версия 1.0.0-alpha01 содержит эти коммиты.

Особенности первоначального выпуска

Библиотека Health Services предоставляет разработчикам единый набор API-интерфейсов для интеграции с реализациями датчиков для конкретных устройств. Он будет работать «из коробки» с эмуляторами Wear OS 3 и будущими устройствами, а в будущем будут поддерживаться дополнительные платформы. В этот первоначальный выпуск включены три поверхности API верхнего уровня: ExerciseClient , PassiveMonitoringClient и MeasureClient .

УпражнениеКлиент

ExerciseClient создан для приложений, отслеживающих активные тренировки, и содержит до 82 различных ExerciseType — от ходьбы и бега до танцев и водного поло. При отслеживании этих упражнений доступен выбор из 50 различных DataType в зависимости от типа упражнения и оборудования, доступного на устройстве. Чтобы начать, просто укажите соответствующую информацию в файле ExerciseConfig , вызовите exerciseClient.startExercise и прослушивайте прогресс в прослушивателе обновлений.

Пассивный мониторингКлиент

PassiveMonitoringClient — отличный выбор, если ваше приложение отслеживает активность пользователя в течение дня. Вы можете зарегистрировать PendingIntent с набором DataType и проснуться для обработки пакетных изменений. Альтернативно вы можете указать Event , например достижение определенного количества шагов.

МераКлиент

Иногда пользователю необходимо измерить, например, частоту пульса в данный момент, а не во время тренировки и не в течение дня. В такие моменты MeasureClient является идеальным выбором. Вы просто регистрируете свой обратный вызов с помощью поддерживаемых DataType , чтобы получать поток данных, и отменяете регистрацию своего обратного вызова, когда он больше не нужен.