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, поскольку для них требуется специальное одобрение.