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