Типы данных в Health Connect хранятся в объектах, которые являются подклассами Record
.
Для каждого типа данных существуют связанные поля, которые являются либо общими, например, time
и zoneOffset
, либо специфическими, например, title
, count
и percentage
. Некоторые поля используют базовые типы, такие как long , double или string , в то время как другие используют сложные типы, такие как перечисления и классы, например, Instant
и ZoneOffset
. Атрибуты этих полей могут быть обязательными или необязательными. Некоторые атрибуты доступны только для чтения, а некоторые ограничены определённым диапазоном значений.
Полный список доступных типов данных и их полей смотрите в классах в Jetpack .
Атрибуты метаданных
Данные в API Health Connect также включают атрибуты метаданных , описанные в следующем списке:
- Идентификатор Health Connect: Каждой точке данных при создании присваивается уникальный идентификатор (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, должны содержать информацию о смещении часового пояса. Указание смещения часового пояса позволяет приложениям считывать данные и отображать их в гражданском времени. Гражданское время — это местное время, актуальное для пользователя, но не обязательно в формате UTC.
В редких случаях смещение часового пояса может быть недоступно. В таких случаях в Android 14 (API уровня 34) Health Connect устанавливает смещение часового пояса на основе системного часового пояса устройства по умолчанию. В Android 13 и более ранних версиях (API уровня 33 и ниже) можно записывать данные в Health Connect без указания смещения часового пояса, чего следует по возможности избегать.
Настройка времени и пояса
Указание смещения часового пояса при записи данных позволяет получить информацию о часовом поясе при чтении данных в Health Connect. Однако в некоторых ситуациях, например, если смещение часового пояса не указано, это может не сработать. Ваше приложение должно быть готово обрабатывать оба типа данных способом, соответствующим вашим конкретным обстоятельствам.