使用 Google Health API 开发步数体验

Google Health API 使用 steps 间隔数据类型跟踪用户步数和活动数据。步数是衡量每日身体活动的基本指标,可帮助开发者跟踪健身进度、计算能量消耗,并构建面向用户的每日活动摘要。

了解如何在应用中读取和构建步数指标,以便为用户提供最佳体验。

支持的数据类型

该 API 支持以下数据类型来跟踪步数:

表:Google Health API 步数数据类型
数据类型 可用的
操作
范围
步骤
dataType: steps
过滤条件参数: steps
记录类型: 间隔
存储分辨率 :1 分钟

兼容的设备

list、reconcile、rollup、dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly

指南

将步数跟踪功能集成到应用中时,请遵循以下设计和实现指南。

速度和配速计算

Google Health API 使用标准公式来计算速度和配速:

  • 速度 = distance / time(hour)
  • 配速 = time(seconds) / distance

请求中指定的 Accept-Language 标头决定了距离单位。

每日概览

如需在旅行、时区变化或夏令时期间准确汇总每日步数,请勿执行客户端时长计算。而是查询 dailyRollUp 端点,该端点会使用世界协调时间 (UTC) 偏移量自动协调身体数据差距。汇总会返回一个包含 countSum 字段的 StepsRollupValue,该字段表示所请求日期的累计总步数。如需了解详情,请参阅“汇总数据”指南中的跨日历日汇总。

绘制界面(协调)

构建界面元素以显示步数数据时,请使用 reconcile 端点。如果多个数据源(例如智能手表和手机)同时记录了步数,reconcile 端点会解决冲突并合并数据流,以返回单个经过协调的数据流。

如需了解如何处理已连接的设备同步和时间戳可变性导致的重叠时间间隔,请参阅数据管理指南。

日内追踪和直方图

如需显示全天的详细用户活动(例如图表和图形),请执行以下操作:

  • 每小时或每分钟步数直方图:查询 rollUp 端点,使用 windowSize 参数指定时长(例如 60s 表示 1 分钟,3600s 表示 1 小时)。由于步数数据是以 1 分钟 (60s) 为间隔记录的,因此请将 windowSize 设置为至少 60s。窗口大小小于一分钟(例如 10s 或 30s)的请求不会对每分钟的总数进行切片,而是将整分钟的计数放入第一个匹配的子存储桶中。如需了解详情,请参阅汇总时间范围和存储分辨率。
  • 所有步数记录:使用 list 端点提取最精细的原始步数记录。

rollUp、dailyRollUp 和 reconcile 端点接受 dataSourceFamily 参数,可让您过滤来自特定来源组的数据。如需了解更多详情和使用示例,请参阅“过滤数据”指南中的按数据源系列过滤部分。

使用 Webhook 进行实时同步

订阅 steps 数据类型集合,以便在导入或同步新步数数据时实时收到通知。您可以动态更新客户端信息中心以响应这些网络钩子通知,而无需轮询 REST 端点。如需详细了解如何设置订阅,请参阅 Webhook 订阅。