Google 健身在 com.google
命名空间下提供一组健康和健身数据类型。
数据类型定义了数据点内值的格式。数据点可以表示:
- 即时读取或观察
- 包含一段时间内统计信息的汇总
Google 健身定义了用于即时观察的数据类型,以及用于汇总的数据类型 数据。数据点由数据类型字段的值和时间戳信息组成。 表示瞬时观察结果的点包括时间戳和 聚合数据类型还包括间隔的开始时间。
Google 健身还支持定义新的数据类型。
数据类型组
Google 健身包含以下数据类型:
- 公开数据类型
- 平台提供的标准数据类型带有“com.google”标记,前缀。例如,com.google.step_count.delta。这些类型的数据可捕获以下内容的即时读数: 健康和健身数据,包括健身活动、睡眠和营养。不限 应用可以请求相关权限以读取和写入这些数据类型 只有少数几个位置数据类型只能由 编写。
如需了解详情,请参阅:
- 健康数据类型
- 平台提供的因以下原因限制访问权限的数据类型 潜在的敏感数据。如需了解更多信息,请参阅健康数据 类型。
- 汇总数据类型
- 用于读取按时间或 活动类型。有关详情,请参阅汇总数据 类型。
- 不公开的自定义数据类型
- 由特定应用定义的自定义数据类型。只有定义 该数据类型可以读取和写入此类型的数据。如需了解详情,请参阅 自定义数据类型。
使用数据类型
Android
在 Android 上,数据类型是指
DataType
类。使用数据类型调用 Fitness API 的方式取决于您要实现的目标:
- 如需录制数据,请使用 Recording API 执行以下操作 为您要记录的每种数据类型创建订阅。
- 如需读取数据,请使用 History API 提交 read 为每种数据类型分别发出自定义请求
- 如需插入过去的历史数据,请使用 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()
REST
dataSources
资源包含数据类型
(及其字段列表)。在以下情况下,您可以指定其中一种数据类型
您可以创建数据源,还可以获取数据类型的名称及其字段列表
。
例如,数据源表示法按如下方式指定其数据类型:
{ "dataStreamId": "exampleDataSourceId", ... "dataType": { "name": "com.google.step_count.delta" }, ... }
授权范围
授权范围涵盖用户可授权应用访问的数据类型组 访问权限。它们可以帮助用户了解应用想要访问哪些类型的数据。 这些设置还使得授予应用使用相应数据的权限变得更为简单, 来批准每种数据类型用户授予这些权限后 您下载了您的应用。
<ph type="x-smartling-placeholder">在邀请少量用户测试您的应用后,再发布 应用,您需要根据以下要求请求验证: 范围。仔细阅读链接到的数据类型页面 以了解适用于每种数据类型的范围。
例如,如果您的应用需要读取和写入血压数据, 需要声明它同时在执行读写操作,并请求这两个范围。如果 只会将血压数据写入 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 健身平台。 | 受限 |
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 健身平台。 | 受限 |
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 应用权限方面的最佳实践。