Типы данных

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

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

  • Мгновенное чтение или наблюдение
  • Агрегат со статистикой за временной интервал

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

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

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

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

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

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

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

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

Андроид

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

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

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

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 .