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

В 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 хранит информацию об устройстве, с которого были получены данные. Обязательным является только тип устройства; все остальные поля (производитель, модель, отображаемое имя и уникальный идентификатор устройства (UDI)) являются необязательными.
  • Идентификатор клиента: 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. Однако в некоторых ситуациях это может быть не так, например, если смещение часового пояса не указано. Ваше приложение должно быть готово обрабатывать оба типа данных таким образом, чтобы это соответствовало вашим конкретным условиям.