Health Connect хранит и структурирует данные о здоровье и фитнесе. Он также учитывает, как измеряются различные типы данных. К этим типам данных относятся измерения сердечного ритма, выполненные сразу, подсчет шагов с течением времени, а также данные о сне, полученные во время сеансов.
Прежде всего важно понять, какие типы данных и разрешения предлагает Health Connect, чтобы вы могли спланировать требования своего приложения. При этом вам необходимо просмотреть типы данных, прежде чем вы сможете окончательно определить свои требования.
Категории типов данных
Health Connect поддерживает типы данных, которые используются в большинстве приложений для здоровья и фитнеса, чтобы обеспечить максимальное разнообразие. Health Connect стремится предложить комплексный просмотр и хранение данных о здоровье и фитнесе. Эти типы данных делятся на следующие категории:
- Активность. Здесь фиксируются любые действия пользователя. Это может включать в себя оздоровительные и фитнес-мероприятия, такие как бег и плавание.
- Измерение тела: сюда фиксируются общие данные, относящиеся к телу, такие как вес пользователя и уровень его основного обмена.
- Отслеживание цикла: фиксирует менструальные циклы и связанные с ними данные, такие как двоичный результат теста на овуляцию.
- Питание: здесь фиксируются типы данных об гидратации и питании. Первый показывает, сколько воды пользователь потребляет за один напиток. Последний включает необязательные поля, такие как калории, сахар и магний.
- Сон: здесь собираются данные об интервалах, связанные с продолжительностью и типом сна пользователя.
- Vitals: собирает важную информацию об общем состоянии здоровья пользователя. Он включает в себя такие данные, как температура тела, уровень глюкозы в крови, артериальное давление и насыщение крови кислородом.
Формат типа данных
Типы данных в Health Connect хранятся в объектах, которые являются подклассами Record
.
Для каждого типа данных существуют связанные поля, которые являются либо общими, например time
и zoneOffset
, либо конкретными, например title
, count
и percentage
. Некоторые поля используют простые типы, такие как long, double или string, тогда как другие используют сложные типы, такие как перечисления и классы, такие как Instant
и ZoneOffset
. Атрибуты этих полей могут быть обязательными или необязательными. Некоторые атрибуты доступны только для чтения, а некоторые атрибуты привязаны к определенному диапазону значений.
Полный список доступных типов данных и их полей см. в классах Jetpack .
Дополнительные атрибуты данных
Данные в Health Connect API также включают атрибуты метаданных , описанные в следующем списке:
- Health Connect ID: каждой точке данных при создании присваивается уникальный идентификатор (UID). Это полезно для стандартных операций чтения и записи. Дополнительную информацию см. в разделе «Идентификатор Health Connect» .
- Время последнего изменения: это отметка времени последнего экземпляра обновления записи. Он автоматически генерируется при первом создании записи или при каждом обновлении.
- Источник данных: Health Connect хранит информацию о приложении, из которого поступили данные. Он содержит имя пакета этого источника, которое автоматически добавляется при создании.
- Устройство: Health Connect хранит информацию об устройстве, с которого поступили данные. Он содержит производителя и модель устройства, значение которого вы указываете вручную.
- Идентификатор клиента: Health Connect предоставляет идентификаторы клиента, чтобы клиентские приложения могли обращаться к данным, используя свои собственные идентификаторы, что помогает разрешать конфликты и упрощает синхронизацию. Это подается в запись вручную.
- Версия записи клиента. Наряду с идентификатором клиента 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 34), Health Connect устанавливает смещение зоны на основе часового пояса системы по умолчанию для устройства. В версиях Android 13 и более ранних версиях (уровень API 33 и более ранние) можно писать в Health Connect без указания какой-либо информации о смещении зоны, чего следует избегать, когда это возможно.
Настройка времени и зоны
Указание информации о смещении зоны во время записи данных предоставляет информацию о часовом поясе при чтении данных в Health Connect. Однако в определенных ситуациях это может оказаться невозможным, например, когда смещение зоны не указано. Ваше приложение должно быть подготовлено к работе с обоими типами данных таким образом, чтобы это соответствовало вашим конкретным обстоятельствам.
Разрешения
Прежде чем запрашивать какие-либо разрешения, ваше приложение должно сначала объявить их в манифесте. В следующих таблицах представлено полное сопоставление типов данных и их разрешений.
Для 1.0.0-альфа10 и выше
Тип класса записи | Чтение и написание декларации о разрешении |
---|---|
АктивныеКалорииСожжено | 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.permission.health.WRITE_BLOOD_GLUCOSE |
Артериальное давление | android.permission.health.READ_BLOOD_PRESSURE android.permission.health.WRITE_BLOOD_PRESSURE |
ТелоЖир | android.permission.health.READ_BODY_FAT android.permission.health.WRITE_BODY_FAT |
Температура тела | android.permission.health.READ_BODY_TEMPERATURE android.permission.health.WRITE_BODY_TEMPERATURE |
ТелоВодаМасса | android.permission.health.READ_BODY_WATER_MASS android.permission.health.WRITE_BODY_WATER_MASS |
костная масса | android.permission.health.READ_BONE_MASS android.permission.health.WRITE_BONE_MASS |
ЦервикальнаяСлизь | android.permission.health.READ_CERVICAL_MUCUS android.permission.health.WRITE_CERVICAL_MUCUS |
ВелоспортПедалиКаденция | android.permission.health.READ_EXERCISE android.permission.health.WRITE_EXERCISE |
Расстояние | android.permission.health.READ_DISTANCE android.permission.health.WRITE_DISTANCE |
Высота получена | android.permission.health.READ_ELEVATION_GAINED android.permission.health.WRITE_ELEVATION_GAINED |
Сеанс упражнений | android.permission.health.READ_EXERCISE android.permission.health.WRITE_EXERCISE |
ПолыПоднялись | android.permission.health.READ_FLOORS_CLIMBED android.permission.health.WRITE_FLOORS_CLIMBED |
Частота сердечных сокращений | android.permission.health.READ_HEART_RATE android.permission.health.WRITE_HEART_RATE |
Частота сердечных сокращенийВариабельностьRmssd | android.permission.health.READ_HEART_RATE_VARIABILITY android.permission.health.WRITE_HEART_RATE_VARIABILITY |
Высота | android.permission.health.READ_HEIGHT android.permission.health.WRITE_HEIGHT |
Увлажнение | android.permission.health.READ_HYDRATION android.permission.health.WRITE_HYDRATION |
Межменструальноекровотечение | android.permission.health.READ_INTERMENSTRUAL_BLEEDING android.permission.health.WRITE_INTERMENSTRUAL_BLEEDING |
СухойТелоМасса | android.permission.health.READ_LEAN_BODY_MASS android.permission.health.WRITE_LEAN_BODY_MASS |
МенструацияПоток | android.permission.health.READ_MENSTRUATION android.permission.health.WRITE_MENSTRUATION |
МенструацияПериод | android.permission.health.READ_MENSTRUATION android.permission.health.WRITE_MENSTRUATION |
Питание | android.permission.health.READ_NUTRITION android.permission.health.WRITE_NUTRITION |
Тест на овуляцию | android.permission.health.READ_OVULATION_TEST android.permission.health.WRITE_OVULATION_TEST |
Насыщение кислородом | android.permission.health.READ_OXYGEN_SATURATION android.permission.health.WRITE_OXYGEN_SATURATION |
ЗапланированноеУпражнение | android.permission.health.READ_PLANNED_EXERCISE android.permission.health.WRITE_PLANNED_EXERCISE |
Власть | android.permission.health.READ_POWER android.permission.health.WRITE_POWER |
Частота дыхания | android.permission.health.READ_RESPIRATORY_RATE android.permission.health.WRITE_RESPIRATORY_RATE |
Пульс в покое | android.permission.health.READ_RESTING_HEART_RATE android.permission.health.WRITE_RESTING_HEART_RATE |
Сексуальная активность | android.permission.health.READ_SEXUAL_ACTIVITY android.permission.health.WRITE_SEXUAL_ACTIVITY |
Температура кожи | androidx.health.permission.SkinTemperature.READ androidx.health.permission.SkinTemperature.WRITE |
SleepSession | android.permission.health.READ_SLEEP android.permission.health.WRITE_SLEEP |
Скорость | android.permission.health.READ_SPEED android.permission.health.WRITE_SPEED |
ШагиКаденция | android.permission.health.READ_STEPS android.permission.health.WRITE_STEPS |
Шаги | android.permission.health.READ_STEPS android.permission.health.WRITE_STEPS |
Всего калорий сожжено | android.permission.health.READ_TOTAL_CALORIES_BURNED android.permission.health.WRITE_TOTAL_CALORIES_BURNED |
Vo2Макс | android.permission.health.READ_VO2_MAX android.permission.health.WRITE_VO2_MAX |
Масса | android.permission.health.READ_WEIGHT android.permission.health.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.BasalBodyTemperature.READ androidx.health.permission.BasalBodyTemperature.WRITE |
Базальная скорость метаболизма | androidx.health.permission.BasalMetabolicRate.READ androidx.health.permission.BasalMetabolicRate.WRITE |
КровьГлюкоза | androidx.health.permission.BloodGlucose.READ androidx.health.permission.BloodGlucose.WRITE |
Артериальное давление | androidx.health.permission.BloodPressure.READ androidx.health.permission.BloodPressure.WRITE |
ТелоЖир | androidx.health.permission.BodyFat.READ androidx.health.permission.BodyFat.WRITE |
Температура тела | androidx.health.permission.BodyTemperature.READ androidx.health.permission.BodyTemperature.WRITE |
ТелоВодаМасса | androidx.health.permission.BodyWaterMass.READ androidx.health.permission.BodyWaterMass.WRITE |
костная масса | androidx.health.permission.BoneMass.READ androidx.health.permission.BoneMass.WRITE |
ЦервикальнаяСлизь | androidx.health.permission.CervicalMucus.READ androidx.health.permission.CervicalMucus.WRITE |
ВелоспортПедалиКаденция | androidx.health.permission.CyclingPedalingCadence.READ androidx.health.permission.CyclingPedalingCadence.WRITE |
Расстояние | androidx.health.permission.Distance.READ androidx.health.permission.Distance.WRITE |
Высота получена | androidx.health.permission.ElevationGained.READ androidx.health.permission.ElevationGained.WRITE |
Сеанс упражнений | androidx.health.permission.ExercisionSession.READ androidx.health.permission.ExercisionSession.WRITE |
ПолыПоднялись | androidx.health.permission.FloorsClimbed.READ androidx.health.permission.FloorsClimbed.WRITE |
Частота сердечных сокращений | androidx.health.permission.HeartRate.READ androidx.health.permission.HeartRate.WRITE |
Частота сердечных сокращенийВариабельностьRmssd | androidx.health.permission.HeartRateVariabilityRmssd.READ androidx.health.permission.HeartRateVariabilityRmssd.WRITE |
Высота | androidx.health.permission.Height.READ androidx.health.permission.Height.WRITE |
Увлажнение | androidx.health.permission.Hydration.READ androidx.health.permission.Hydration.WRITE |
Межменструальноекровотечение | androidx.health.permission.IntermenstrualBleeding.READ androidx.health.permission.IntermenstrualBleeding.WRITE |
СухойТелоМасса | androidx.health.permission.LeanBodyMass.READ androidx.health.permission.LeanBodyMass.WRITE |
МенструацияПоток | androidx.health.permission.MenstruationFlow.READ androidx.health.permission.MenstruationFlow.WRITE |
Питание | androidx.health.permission.Nutrition.READ androidx.health.permission.Nutrition.WRITE |
Тест на овуляцию | androidx.health.permission.OvulationTest.READ androidx.health.permission.OvulationTest.WRITE |
Насыщение кислородом | androidx.health.permission.OxygenSaturation.READ androidx.health.permission.OxygenSaturation.WRITE |
Власть | androidx.health.permission.Power.READ androidx.health.permission.Power.WRITE |
Частота дыхания | androidx.health.permission.RespiratoryRate.READ androidx.health.permission.RespiratoryRate.WRITE |
Пульс в покое | androidx.health.permission.RestingHeartRate.READ 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.READ androidx.health.permission.StepsCadence.WRITE |
Шаги | androidx.health.permission.Steps.READ androidx.health.permission.Steps.WRITE |
Всего калорий сожжено | androidx.health.permission.TotalCaloriesBurned.READ androidx.health.permission.TotalCaloriesBurned.WRITE |
Vo2Макс | androidx.health.permission.Vo2Max.READ 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, поскольку они требуют специального разрешения.