Типы данных

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

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

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

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

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

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

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

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

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

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

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

Андроид

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

  • Для записи данных используйте API записи , чтобы создать подписку для каждого типа данных, который вы хотите записать.
  • Чтобы прочитать данные, используйте History API , чтобы отправить запрос на чтение для каждого типа данных.
  • Чтобы вставить исторические данные из прошлого, используйте History API , чтобы отправить запрос на вставку для каждого типа данных.
  • Чтобы создавать сеансы, используйте 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 .