Типы данных

Google Fit предоставляет набор типов данных о здоровье и самочувствии в пространстве имен com.google .

Типы данных определяют формат значений внутри точек данных. Точка данных может представлять собой:

  • Мгновенное считывание или наблюдение
  • Сводные данные, содержащие статистику за определенный временной интервал.

Google Fit определяет типы данных для мгновенных наблюдений и типы данных для агрегированных данных. Точки данных состоят из значений полей типа данных и информации о временной метке. Точки, представляющие мгновенные наблюдения, включают временную метку, а точки агрегированного типа данных также включают время начала интервала.

Google Fit также позволяет определять новые типы данных.

Группы типов данных

В Google Fit используются следующие типы данных:

Общедоступные типы данных
Стандартные типы данных, предоставляемые платформой, имеют префикс 'com.google'. Например, com.google.step_count.delta . Эти типы данных фиксируют мгновенные показания для оценки состояния здоровья и самочувствия, включая физическую активность, сон и питание. Любое приложение может запросить соответствующие разрешения на чтение и запись этих типов данных, за исключением нескольких типов данных о местоположении, которые могут быть прочитаны только тем приложением, которое их записало.

Для получения более подробной информации см.:

Типы данных о здоровье
Типы данных, предоставляемые платформой, доступ к которым ограничен из-за потенциальной конфиденциальности. Для получения дополнительной информации см. раздел «Типы данных в сфере здравоохранения» .
Агрегированные типы данных
Типы данных для чтения информации о здоровье и самочувствии, агрегированной по времени или типу активности. Дополнительную информацию см. в разделе «Агрегированные типы данных» .
Частные пользовательские типы данных
Пользовательские типы данных, определяемые конкретным приложением. Только приложение, определившее тип данных, может читать и записывать данные этого типа. Для получения дополнительной информации см. раздел «Пользовательские типы данных» .

Использование типов данных

Android

В Android типы данных определяются как открытые поля класса DataType . Способ вызова API Fitness с использованием типа данных зависит от того, чего вы хотите достичь:

  • Для записи данных используйте API записи , чтобы создать подписку для каждого типа данных, которые вы хотите записывать.
  • Для чтения данных используйте API истории , чтобы отправить запрос на чтение для каждого типа данных.
  • Для вставки исторических данных из прошлого используйте API истории , чтобы отправить запрос на вставку для каждого типа данных.
  • Для создания сессий используйте API сессий , чтобы вставлять или записывать данные вместе с метаданными сессии.

Для создания точек данных для экземпляра объекта DataType присвойте значения в правильном формате. В следующем примере показано, как присвоить продукту питания строку, типу блюда — константу из класса Field , а содержанию питательных веществ — значения типа float.

val nutritionSource = DataSource.Builder()
    .setDataType(DataType.TYPE_NUTRITION)
    ...
    .build()

val nutrients = mapOf(
    Field.NUTRIENT_TOTAL_FAT to 0.4f,
    Field.NUTRIENT_SODIUM to 1f,
    Field.NUTRIENT_POTASSIUM to 422f
)
val banana = DataPoint.builder(nutritionSource)
    .setTimestamp(now, TimeUnit.MILLISECONDS)
    .setField(Field.FIELD_FOOD_ITEM, "banana")
    .setField(Field.FIELD_MEAL_TYPE, Field.MEAL_TYPE_SNACK)
    .setField(Field.FIELD_NUTRIENTS, nutrients)
    .build()

После установки точек данных в вашем приложении вы можете вставлять, читать или удалять исторические данные с помощью History API .

ОТДЫХ

Ресурс dataSources содержит тип данных (и список его полей) для каждого источника данных. Вы можете указать один из этих типов данных при создании источников данных, а имя типа данных и список его полей можно получить при извлечении источника данных из хранилища фитнес-данных.

Например, в представлении источника данных тип данных указывается следующим образом:

{
"dataStreamId": "exampleDataSourceId",
...
"dataType": {
  "name": "com.google.step_count.delta"
},
...
}

Области полномочий

Области авторизации охватывают группы типов данных, к которым пользователь может разрешить приложению доступ. Они помогают пользователям понять, к каким типам данных приложение хочет получить доступ. Они также упрощают предоставление приложениям разрешений на использование этих данных, поскольку не требуют подтверждения каждого отдельного типа данных. Пользователи предоставляют эти разрешения после загрузки вашего приложения.

Пример экрана согласия на использование областей действия OAuth.
Рисунок 2. Экран согласия на использование областей действия OAuth.

После тестирования приложения с небольшим количеством пользователей, перед его запуском необходимо запросить подтверждение в соответствии с областями действия, относящимися к данным типам. Ознакомьтесь со страницами, посвященными типам данных, ссылки на которые приведены выше, чтобы понять, какие области действия применяются к каждому типу данных.

Например, если вашему приложению необходимо считывать и записывать данные об артериальном давлении, оно должно объявить, что выполняет и чтение, и запись, и запросить обе области действия. Если же оно записывает данные об артериальном давлении только на платформу Google Fit, ему достаточно запросить только область действия для записи.

Выбирайте типы данных ответственно. Не запрашивайте все типы данных на случай, если они могут понадобиться вашему приложению. Указанные типы определяют, для каких областей доступа пользователю будет предложено предоставить разрешение. Запрашивайте только те типы данных, которые необходимы вашему приложению, чтобы пользователи с большей вероятностью предоставили доступ. Пользователи охотнее предоставляют доступ к ограниченным, четко описанным областям доступа.

Используйте эту таблицу, чтобы проверить, являются ли области доступа, необходимые вашему приложению, конфиденциальными или ограниченными (это определяет шаги проверки, которые вам необходимо выполнить):

Объем Описание Категория
https://www.googleapis.com/auth/fitness.activity.read Считывайте данные об активности с платформы Google Fit. Ограниченный
https://www.googleapis.com/auth/fitness.activity.write Запись данных об активности на платформу Google Fit Ограниченный
https://www.googleapis.com/auth/fitness.blood_glucose.read Считывайте данные об уровне глюкозы в крови с платформы Google Fit. Ограниченный
https://www.googleapis.com/auth/fitness.blood_glucose.write Запись данных об уровне глюкозы в крови на платформу Google Fit. Ограниченный
https://www.googleapis.com/auth/fitness.blood_pressure.read Считывайте данные об артериальном давлении с платформы Google Fit. Ограниченный
https://www.googleapis.com/auth/fitness.blood_pressure.write Запись данных об артериальном давлении на платформу Google Fit. Ограниченный
https://www.googleapis.com/auth/fitness.body.read Просматривайте данные об параметрах тела (рост, вес, процент жира в организме) на платформе Google Fit. Ограниченный
https://www.googleapis.com/auth/fitness.body.write Запись данных об измерениях тела на платформу Google Fit. Ограниченный
https://www.googleapis.com/auth/fitness.body_temperature.read Считывайте данные о температуре тела с платформы Google Fit. Ограниченный
https://www.googleapis.com/auth/fitness.body_temperature.write Запись данных о температуре тела на платформу Google Fit. Ограниченный
https://www.googleapis.com/auth/fitness.heart_rate.read Считывайте данные о частоте сердечных сокращений с платформы Google Fit. Ограниченный
https://www.googleapis.com/auth/fitness.heart_rate.write Записывайте данные о частоте сердечных сокращений на платформу Google Fit. Ограниченный
https://www.googleapis.com/auth/fitness.location.read Считывайте данные о местоположении с платформы Google Fit. Ограниченный
https://www.googleapis.com/auth/fitness.location.write Запись данных о местоположении на платформу Google Fit. Ограниченный
https://www.googleapis.com/auth/fitness.nutrition.read Ознакомьтесь с данными о питательной ценности продуктов на платформе Google Fit. Ограниченный
https://www.googleapis.com/auth/fitness.nutrition.write Записывайте данные о питании на платформу Google Fit. Ограниченный
https://www.googleapis.com/auth/fitness.oxygen_saturation.read Прочитайте данные об уровне насыщения крови кислородом с платформы Google Fit. Ограниченный
https://www.googleapis.com/auth/fitness.oxygen_saturation.write Запись данных об уровне насыщения крови кислородом на платформу Google Fit. Ограниченный
https://www.googleapis.com/auth/fitness.reproductive_health.read Ознакомьтесь с данными о репродуктивном здоровье на платформе Google Fit. Ограниченный
https://www.googleapis.com/auth/fitness.reproductive_health.write Записывайте данные о репродуктивном здоровье на платформу Google Fit. Ограниченный
https://www.googleapis.com/auth/fitness.sleep.read Просматривайте данные о сне с платформы Google Fit. Ограниченный
https://www.googleapis.com/auth/fitness.sleep.write Запись данных о сне на платформу Google Fit. Ограниченный

Добавление новых областей действия к существующему приложению

При обновлении приложения для запроса новой области действия (например, при добавлении новых областей действия, связанных со сном или частотой сердечных сокращений, или добавлении области действия для чтения), пользователям будет предложено уведомить о том, что ваше приложение запрашивает доступ к этим областям действия, и они смогут предоставить или отклонить доступ.

Рекомендуется запрашивать у пользователей разрешение на использование ресурсов в момент, когда они вам необходимы. Следуйте рекомендациям по запросу поэтапного разрешения .

Пользователи с большей вероятностью предоставят доступ, если поймут, почему и как ваше приложение использует эти данные:

  • Рекомендуется добавить экран, который предупреждает/информирует пользователей о том, что им будет предложено указать эти области действия.
  • Чётко объясните, почему ваше приложение запрашивает доступ к этим областям/данным, чтобы пользователи могли принять обоснованное решение.

Узнайте больше о лучших практиках в отношении разрешений приложений для Android .