Планирование и проверка типов данных Health Connect

Health Connect хранит и структурирует данные о здоровье и фитнесе. Он также учитывает, как измеряются различные типы данных. К этим типам данных относятся измерения частоты сердечных сокращений, сделанные немедленно, количество шагов, сделанных с течением времени, и данные о сне, собранные во время сеансов.

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

Категории типов данных

Health Connect поддерживает типы данных, которые используются в большинстве приложений для здоровья и фитнеса, чтобы обеспечить максимально возможное разнообразие. Health Connect стремится предложить комплексный просмотр и хранение данных о здоровье и фитнесе. Эти типы данных делятся на следующие категории:

  • Активность: Это фиксирует любую активность, которую выполняет пользователь. Это может включать в себя оздоровительные и фитнес-активности, такие как бег и плавание.
  • Измерение параметров тела: собирает общие данные, связанные с телом, такие как вес пользователя и его базовый уровень метаболизма.
  • Отслеживание цикла: фиксирует менструальные циклы и связанные с ними данные, такие как бинарный результат теста на овуляцию.
  • Питание: здесь фиксируются типы данных о гидратации и питании. Первый представляет, сколько воды пользователь потребляет за один напиток. Последний включает необязательные поля, такие как калории, сахар и магний.
  • Сон: собирает данные об интервалах, связанных с продолжительностью и типом сна пользователя.
  • Vitals: собирает важную информацию об общем состоянии здоровья пользователя. Включает такие данные, как температура тела, уровень глюкозы в крови, артериальное давление и насыщение крови кислородом.

Формат типа данных

Типы данных в Health Connect хранятся в объектах, которые являются подклассами Record .

Для каждого типа данных есть связанные поля, которые являются либо общими, например time и zoneOffset , либо конкретными, например title , count и percentage . Некоторые поля используют простые типы, например long, double или string , в то время как другие используют сложные типы, например перечисления и классы, например Instant и ZoneOffset . Атрибуты этих полей могут быть обязательными или необязательными. Некоторые атрибуты доступны только для чтения, а некоторые атрибуты ограничены определенным диапазоном значений.

Полный список доступных типов данных и их полей можно найти в классах в Jetpack .

Дополнительные атрибуты данных

Данные в API Health Connect также включают атрибуты метаданных , описанные в следующем списке:

  • Health Connect ID: Каждой точке данных присваивается уникальный идентификатор (UID) при создании. Это полезно для стандартных операций чтения и записи. Подробнее см. Health Connect ID .
  • Время последнего изменения: Это метка времени последнего обновления записи. Она автоматически генерируется при первом создании записи или при каждом обновлении.
  • Происхождение данных: Health Connect хранит информацию о приложении, откуда поступили данные. Он содержит имя пакета этого источника, которое автоматически добавляется при создании.
  • Устройство: Health Connect хранит информацию об устройстве, откуда поступили данные. Он содержит производителя и модель этого устройства, значение которого вы указываете вручную.
  • Client ID: Health Connect предоставляет Client ID, чтобы клиентские приложения могли ссылаться на данные, используя свои собственные ID, что помогает в разрешении конфликтов и упрощает синхронизацию. Это вносится в запись вручную.
  • Версия записи клиента: вместе с идентификатором клиента Health Connect обеспечивает версионирование, помогающее отслеживать изменения во время синхронизации данных. Это вносится в запись вручную.
  • Метод записи: Health Connect позволяет вам понять, как записываются данные. Эти методы включают приложения, которые записывают данные пассивно (автоматически), и пользователей, которые записывают данные активно или вручную.

Идентификатор Health Connect

Health Connect назначает уникальные идентификаторы (UID) вновь вставленным объектам данных, которые идентифицируют объекты данных и отличают их от других. Идентификаторы Health Connect полезны в запросах на чтение или запись. Идентификаторы Health Connect не идентичны идентификаторам клиентов. Клиентское приложение назначает идентификаторы клиентов, в то время как Health Connect назначает исключительно идентификаторы Health Connect.

При работе с идентификаторами Health Connect помните о следующих моментах:

  • Сеансы имеют один идентификатор Health Connect, но данные внутри сеансов имеют свои собственные идентификаторы Health Connect.
  • Идентификаторы Health Connect не привязаны и не связаны с временными метками.
  • Некоторые варианты использования могут потребовать сохранения определенного идентификатора Health Connect во время рабочего процесса. Например, определенный идентификатор требуется для извлечения и показа пользователю записи данных, которую он только что зарегистрировал.

Время в Health Connect

Все данные, записанные в Health Connect, должны содержать информацию о смещении зоны. Указание смещения зоны позволяет приложениям считывать данные для представления их в гражданском времени. Гражданское время — это время, которое является местным и релевантным для пользователя, но не обязательно в формате UTC.

В редких случаях смещение зоны может быть недоступно. Когда это происходит в Android 14 (API Level 34), Health Connect устанавливает смещение зоны на основе часового пояса системы по умолчанию для устройства. В Android 13 и более ранних версиях (API Level 33 и ниже) можно записывать в Health Connect без указания какой-либо информации о смещении зоны, чего следует избегать, когда это возможно.

Настройка времени и пояса

Указание информации о смещении зоны при записи данных обеспечивает информацию о часовом поясе при чтении данных в Health Connect. Однако в некоторых ситуациях это может не сработать, например, когда смещение зоны не указано. Ваше приложение должно быть готово работать с обоими типами данных таким образом, чтобы это имело смысл для ваших конкретных обстоятельств.

Разрешения

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

Для 1.0.0-alpha10 и выше

Ссылка на разрешение Прочитать декларацию о разрешении
Фоновые чтения android.permission.health.ЧИТАТЬ_ДАННЫЕ_О_ЗДОРОВЬЕ_В_ФОНОВОМ_РАКТЕРСТВЕ
История гласит android.permission.health.READ_HEALTH_DATA_HISTORY

Тип класса записи Декларация о разрешении на чтение и запись
АктивныеКалорииСожженные android.permission.health.READ_ACTIVE_CALORIES_BURNED
android.permission.health.WRITE_ACTIVE_CALORIES_BURNED
БазальнаяТемператураТела android.permission.health.READ_BASAL_BODY_TEMPERATURE
android.permission.health.WRITE_BASAL_BODY_TEMPERATURE
БазовыйМетаболическийСкорость android.permission.health.READ_BASAL_METABOLIC_RATE
android.permission.health.WRITE_BASAL_METABOLIC_RATE
Глюкоза в крови android.permission.health.READ_BLOOD_GLUCOSE
android.разрешение.здоровье.ЗАПИСЬ_КРОВИ_ГЛЮКОЗА
Артериальное давление android.разрешение.здоровье.ЧИТАТЬ_КРОВЯНОЕ_ДАВЛЕНИЕ
android.разрешение.здоровье.WRITE_BLOOD_PRESSURE
BodyFat android.разрешение.здоровье.READ_BODY_FAT
android.разрешение.здоровье.WRITE_BODY_FAT
ТемператураТела android.permission.health.READ_BODY_TEMPERATURE
android.разрешение.здоровье.WRITE_BODY_TEMPERATURE
BodyWaterMass android.permission.health.READ_BODY_WATER_MASS
android.permission.health.WRITE_BODY_WATER_MASS
BoneMass android.разрешение.здоровье.READ_BONE_MASS
android.разрешение.здоровье.WRITE_BONE_MASS
Цервикальная слизь android.permission.health.READ_CERVICAL_MUCUS
android.permission.health.WRITE_CERVICAL_MUCUS
ВелоспортПедалированиеКаденция android.permission.health.READ_EXERCISE
android.разрешение.здоровье.ЗАПИСЬ_ЭКСПЕРТИЗЫ
Расстояние android.разрешение.здоровье.READ_DISTANCE
android.разрешение.здоровье.WRITE_DISTANCE
ВысотаНабрана android.permission.health.READ_ELEVATION_GAINED
android.permission.health.WRITE_ELEVATION_GAINED
УпражнениеСессия android.permission.health.READ_EXERCISE
android.permission.health.READ_EXERCISE_ROUTES
android.разрешение.здоровье.ЗАПИСЬ_ЭКСПЕРТИЗЫ
android.permission.health.WRITE_EXERCISE_ROUTE
ЭтажиПоднялись android.permission.health.READ_FLOORS_CLIMBED
android.permission.health.WRITE_FLOORS_CLIMBED
Частота сердечных сокращений android.разрешение.здоровье.READ_HEART_RATE
android.разрешение.здоровье.WRITE_HEART_RATE
Изменчивость ЧССRmssd android.permission.health.READ_HEART_RATE_VARIABILITY
android.permission.health.WRITE_HEART_RATE_VARIABILITY
Высота android.разрешение.здоровье.READ_HEIGHT
android.разрешение.здоровье.WRITE_HEIGHT
Гидратация android.permission.health.READ_HYDRATION
android.разрешение.здоровье.ЗАПИСЬ_ГИДРАТАЦИИ
МежменструальноеКровотечение android.permission.health.READ_INTERMENSTRUAL_BLEEDING
android.permission.health.WRITE_INTERMENSTRUAL_BLEEDING
LeanBodyMass android.permission.health.READ_LEAN_BODY_MASS
android.разрешение.здоровье.ЗАПИСЬ_ХУДОГО_ТЕЛА_МАССЫ
MenstruationFlow android.permission.health.READ_MENSTRUATION
android.разрешение.здоровье.WRITE_MENSTRUATION
МенструацияПериод android.permission.health.READ_MENSTRUATION
android.разрешение.здоровье.WRITE_MENSTRUATION
Сеанс осознанности android.permission.health.READ_MINDFULNESS
android.разрешение.здоровье.WRITE_MINDFULNESS
Питание android.разрешение.здоровье.ЧИТАТЬ_ПИТАНИЕ
android.разрешение.здоровье.WRITE_NUTRITION
Тест на овуляцию android.permission.health.READ_OVULATION_TEST
android.разрешение.здоровье.WRITE_OVULATION_TEST
Насыщение Кислородом android.permission.health.READ_OXYGEN_SATURATION
android.разрешение.здоровье.ЗАПИСЬ_ОКСИДЖЕНА_НАСЫЩЕНИЯ
Запланированное упражнение android.permission.health.READ_PLANNED_EXERCISE
android.permission.health.WRITE_PLANNED_EXERCISE
Власть android.разрешение.здоровье.READ_POWER
android.разрешение.здоровье.WRITE_POWER
Частота дыхания android.permission.health.READ_RESPIRATORY_RATE
android.permission.health.WRITE_RESPIRATORY_RATE
Частота сердечных сокращений в состоянии покоя android.permission.health.READ_RESTING_HEART_RATE
android.разрешение.здоровье.WRITE_RESTING_HEART_RATE
СексуальнаяАктивность android.permission.health.ЧИТАТЬ_СЕКСУАЛЬНУЮ_АКТИВНОСТЬ
android.разрешение.здоровье.ЗАПИСЬ_СЕКСУАЛЬНАЯ_АКТИВНОСТЬ
ТемператураКожи android.permission.health.READ_SKIN_TEMPERATURE
android.permission.health.WRITE_SKIN_TEMPERATURE
SleepSession android.разрешение.здоровье.READ_SLEEP
android.разрешение.здоровье.WRITE_SLEEP
Скорость android.разрешение.здоровье.READ_SPEED
android.разрешение.здоровье.WRITE_SPEED
ШагиКаденция android.разрешение.здоровье.READ_STEPS
android.разрешение.здоровье.WRITE_STEPS
Шаги android.разрешение.здоровье.READ_STEPS
android.разрешение.здоровье.WRITE_STEPS
Общее количество сожженных калорий android.permission.health.ЧИТАТЬ_ОБЩЕЕ_КОЛИЧЕСТВО_СЖИГАННЫХ_КАЛОРИЙ
android.permission.health.WRITE_TOTAL_CALORIES_BURNED
Vo2Max android.разрешение.здоровье.READ_VO2_MAX
android.разрешение.здоровье.WRITE_VO2_MAX
Масса android.разрешение.здоровье.READ_WEIGHT
android.разрешение.здоровье.WRITE_WEIGHT
Кресло-коляскаТолкает android.permission.health.READ_WHEELCHAIR_PUSHES
android.permission.health.WRITE_WHEELCHAIR_PUSHES

Для 1.0.0-alpha09 и ниже

Тип класса записи Декларация о разрешении на чтение и запись
АктивныеКалорииСожженные androidx.health.permission.ActiveCaloriesBurned.READ
androidx.health.permission.ActiveCaloriesBurned.WRITE
БазальнаяТемператураТела androidx.health.permission.Базовая температура тела.ЧИТАТЬ
androidx.health.permission.Базовая температура тела.ЗАПИСЬ
БазовыйМетаболическийСкорость androidx.health.permission.BasalMetabolicRate.ЧИТАТЬ
androidx.health.permission.BasalMetabolicRate.WRITE
Глюкоза в крови androidx.health.permission.ГлюкозаКрови.ЧИТАТЬ
androidx.health.permission.ГлюкозаКрови.ЗАПИСЬ
Артериальное давление androidx.health.permission.BloodPressure.READ
androidx.health.permission.BloodPressure.WRITE
BodyFat androidx.health.permission.BodyFat.ЧИТАТЬ
androidx.health.permission.BodyFat.WRITE
ТемператураТела androidx.health.permission.Температура Тела.ЧИТАТЬ
androidx.health.permission.Температура Тела.ЗАПИСЬ
BodyWaterMass androidx.health.permission.BodyWaterMass.READ
androidx.health.permission.BodyWaterMass.WRITE
BoneMass androidx.health.permission.BoneMass.ЧИТАТЬ
androidx.health.permission.BoneMass.WRITE
Цервикальная слизь androidx.health.permission.CervicalMucus.ЧИТАТЬ
androidx.health.permission.CervicalMucus.WRITE
ВелоспортПедалированиеКаденция androidx.health.permission.ВелоспортПедалированиеКаденция.ЧИТАТЬ
androidx.health.permission.ВелоспортПедалированиеКаденция.ЗАПИСЬ
Расстояние androidx.health.permission.Distance.READ
androidx.health.разрешение.Расстояние.ЗАПИСЬ
ВысотаНабрана androidx.health.permission.ElevationGained.READ
androidx.health.permission.ElevationGained.WRITE
УпражнениеСессия androidx.health.permission.ExerciseSession.ЧИТАТЬ
androidx.health.permission.ExerciseSession.WRITE
ЭтажиПоднялись androidx.health.permission.ЭтажиПоднялись.ЧИТАТЬ
androidx.health.permission.ЭтажиПодняты.ЗАПИСЬ
Частота сердечных сокращений androidx.health.permission.HeartRate.READ
androidx.health.permission.HeartRate.WRITE
Изменчивость ЧССRmssd androidx.health.permission.ИзменчивостьСердечногоРитмаRmssd.ЧИТАТЬ
androidx.health.permission.ИзменчивостьСердечногоРитмаRmssd.ЗАПИСЬ
Высота androidx.health.permission.Height.READ
androidx.health.permission.Height.WRITE
Гидратация androidx.health.permission.Гидратация.ЧИТАТЬ
androidx.health.permission.Гидратация.ЗАПИСЬ
МежменструальноеКровотечение androidx.health.permission.Межменструальное кровотечение.ЧИТАТЬ
androidx.health.permission.Межменструальное кровотечение.ЗАПИСЬ
LeanBodyMass androidx.health.permission.LeanBodyMass.ЧИТАТЬ
androidx.health.permission.LeanBodyMass.WRITE
MenstruationFlow androidx.health.permission.MenstruationFlow.ЧИТАТЬ
androidx.health.permission.MenstruationFlow.WRITE
Питание androidx.health.permission.Питание.ЧИТАТЬ
androidx.health.permission.Питание.ЗАПИСЬ
Тест на овуляцию androidx.health.permission.OvulationTest.ЧИТАТЬ
androidx.health.permission.OvulationTest.WRITE
Насыщение Кислородом androidx.health.permission.OxygenSaturation.ЧИТАТЬ
androidx.health.permission.OxygenSaturation.WRITE
Власть androidx.health.permission.Power.READ
androidx.health.permission.Power.WRITE
Частота дыхания androidx.health.permission.RespiratoryRate.ЧИТАТЬ
androidx.health.permission.RespiratoryRate.WRITE
Частота сердечных сокращений в состоянии покоя androidx.health.permission.RestingHeartRate.ЧИТАТЬ
androidx.health.permission.RestingHeartRate.WRITE
СексуальнаяАктивность androidx.health.permission.SexualActivity.READ
androidx.health.permission.SexualActivity.WRITE
SleepSession androidx.health.permission.SleepSession.READ
androidx.health.permission.SleepSession.WRITE
Скорость androidx.health.permission.Speed.READ
androidx.health.permission.Speed.WRITE
ШагиКаденция androidx.health.permission.StepsCadence.ЧИТАТЬ
androidx.health.permission.StepsCadence.WRITE
Шаги androidx.health.permission.Шаги.ЧИТАТЬ
androidx.health.permission.Шаги.ЗАПИСЬ
Общее количество сожженных калорий androidx.health.permission.ОбщееКоличествоСожженныхКалорий.ЧИТАТЬ
androidx.health.permission.Общее количество сожженных калорий.ЗАПИСЬ
Vo2Max androidx.health.permission.Vo2Max.ЧИТАТЬ
androidx.health.permission.Vo2Max.WRITE
Масса androidx.health.permission.Weight.READ
androidx.health.permission.Weight.WRITE
Кресло-коляскаТолкает androidx.health.permission.WheelchairPushes.READ
androidx.health.permission.WheelchairPushes.WRITE

Проверьте свои типы данных и разрешения

Теперь, когда вы спланировали типы данных и разрешения, вы можете реализовать их в процессе разработки .

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

Когда вы готовитесь опубликовать свое приложение в Play Store, объявите доступ к типам данных Health Connect , которые использует ваше приложение. В противном случае пользователи могут увидеть сообщение об ошибке, в котором ваше приложение не может получить доступ к типам данных Health Connect, поскольку для них требуется специальное одобрение.