Google 健身在 com.google
命名空间下提供一组健康和健身数据类型。
数据类型定义了数据点内值的格式。数据点可以表示:
- 即时读取或观察
- 包含一段时间内统计信息的汇总
Google 健身定义了用于即时观察的数据类型,以及用于汇总的数据类型 数据。数据点由数据类型字段的值和时间戳信息组成。 表示瞬时观测值的数据点包含时间戳,汇总数据类型的数据点还包含相应时间段的开始时间。
Google 健身还支持定义新的数据类型。
数据类型组
Google 健身包含以下数据类型:
- 公开数据类型
- 平台提供的标准数据类型带有“com.google”标记,前缀。例如,com.google.step_count.delta。这些数据类型可捕获健康和健身数据(包括健身活动、睡眠和营养)的即时读数。除了某些位置数据类型(只能由写入它们的应用读取)外,任何应用都可以请求相关权限来读取和写入这些数据类型。
如需了解详情,请参阅:
- 健康数据类型
- 平台提供的因以下原因限制访问权限的数据类型 潜在的敏感数据。如需了解更多信息,请参阅健康数据 类型。
- 汇总数据类型
- 用于读取按时间或 活动类型。如需了解详情,请参阅汇总数据类型。
- 不公开的自定义数据类型
- 由特定应用定义的自定义数据类型。只有定义 该数据类型可以读取和写入此类型的数据。如需了解详情,请参阅自定义数据类型。
使用数据类型
Android
在 Android 上,数据类型是指
DataType
类。使用数据类型调用 Fitness API 的方式取决于您要实现的目标:
- 如需录制数据,请使用 Recording API 执行以下操作 为您要记录的每种数据类型创建订阅。
- 如需读取数据,请使用 History API 提交 read 为每种数据类型分别发出 100 个请求
- 如需插入过去的历史数据,请使用 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 插入、读取或删除历史数据。
REST
dataSources
资源包含数据类型
(及其字段列表)。您可以在创建数据源时指定其中一种数据类型,并且在从健身商店检索数据源时,可以获取数据类型的名称及其字段列表。
例如,数据源表示法按如下方式指定其数据类型:
{ "dataStreamId": "exampleDataSourceId", ... "dataType": { "name": "com.google.step_count.delta" }, ... }
授权范围
授权范围涵盖用户可授权应用访问的数据类型组 访问权限。这有助于用户了解应用想要访问哪些类型的数据。此外,由于无需批准每种数据类型,因此更容易向应用授予使用这些数据的权限。用户授予这些权限后 您下载了您的应用。

在邀请少量用户测试您的应用后,再发布 应用,您需要根据以下要求请求验证: 范围。请仔细阅读上面链接的数据类型页面,了解哪些范围适用于每种数据类型。
例如,如果您的应用需要读取和写入血压,则需要声明它同时执行读取和写入操作,并请求这两个作用域。如果 只会将血压数据写入 Google 健身平台 请求写入范围。
请负责任地选择数据类型。针对您的应用,不要请求所有数据类型 可能需要用到它。指定的类型决定了系统提示用户的范围 来向其授予权限请仅请求应用所需的数据类型,以便用户更有可能授予访问权限。用户更乐意向描述清晰的有限范围授予访问权限。
使用此表检查您的应用需要访问的范围是敏感范围还是 (这决定了 步骤):
范围 | 说明 | 类别 |
---|---|---|
https://www.googleapis.com/auth/fitness.activity.read |
从 Google 健身平台读取活动数据。 | 受限 |
https://www.googleapis.com/auth/fitness.activity.write |
将活动数据写入 Google 健身平台 | 受限 |
https://www.googleapis.com/auth/fitness.blood_glucose.read |
读取 Google 健身平台中的血糖数据。 | 受限 |
https://www.googleapis.com/auth/fitness.blood_glucose.write |
将血糖数据写入 Google Fit 平台。 | 受限 |
https://www.googleapis.com/auth/fitness.blood_pressure.read |
从 Google 健身平台读取血压数据。 | 受限 |
https://www.googleapis.com/auth/fitness.blood_pressure.write |
将血压数据写入 Google 健身平台。 | 受限 |
https://www.googleapis.com/auth/fitness.body.read |
从 Google 健身平台读取身体测量数据(身高、体重、体脂百分比)。 | 受限 |
https://www.googleapis.com/auth/fitness.body.write |
将身体测量数据写入 Google 健身平台。 | 受限 |
https://www.googleapis.com/auth/fitness.body_temperature.read |
读取 Google 健身平台提供的体温数据。 | 受限 |
https://www.googleapis.com/auth/fitness.body_temperature.write |
将体温数据写入 Google 健身平台。 | 受限 |
https://www.googleapis.com/auth/fitness.heart_rate.read |
读取 Google 健身平台中的心率数据。 | 受限 |
https://www.googleapis.com/auth/fitness.heart_rate.write |
将心率数据写入 Google Fit 平台。 | 受限 |
https://www.googleapis.com/auth/fitness.location.read |
从 Google 健身平台读取位置数据。 | 受限 |
https://www.googleapis.com/auth/fitness.location.write |
将位置数据写入 Google 健身平台。 | 受限 |
https://www.googleapis.com/auth/fitness.nutrition.read |
从 Google 健身平台读取营养数据。 | 受限 |
https://www.googleapis.com/auth/fitness.nutrition.write |
将营养数据写入 Google 健身平台。 | 受限 |
https://www.googleapis.com/auth/fitness.oxygen_saturation.read |
从 Google 健身平台读取血氧饱和度数据。 | 受限 |
https://www.googleapis.com/auth/fitness.oxygen_saturation.write |
将血氧饱和度数据写入 Google 健身平台。 | 受限 |
https://www.googleapis.com/auth/fitness.reproductive_health.read |
读取 Google 健身平台中的生殖健康数据。 | 受限 |
https://www.googleapis.com/auth/fitness.reproductive_health.write |
将生殖健康数据写入 Google 健身平台。 | 受限 |
https://www.googleapis.com/auth/fitness.sleep.read |
读取 Google 健身平台中的睡眠数据。 | 受限 |
https://www.googleapis.com/auth/fitness.sleep.write |
将睡眠数据写入 Google 健身平台。 | 受限 |
向现有应用添加新范围
当您更新应用以请求新范围时(例如,如果您添加了新的 睡眠或心率镜,或添加读取范围),系统会提示用户 您的应用正在请求对这些范围的访问权限,他们可以选择 或拒绝访问
最佳做法是,请求用户立即对资源进行授权 您需要它们。请遵循有关请求增量授权的指南。
如果用户了解应用的原因/方式,将更有可能授予访问权限 使用这些数据:
- 不妨考虑添加一个屏幕,以警告/告知用户系统会要求他们授予这些范围。
- 明确说明您的应用请求访问这些范围/数据的原因, 帮助用户做出明智的决定。
详细了解 Android 应用权限方面的最佳实践。