为了确保数据准确性和汇总结果的一致性,Google 健康数据 API 改进了用户活动的报告方式。通过引入 true zeros 和 on-wrist filtering,该 API 可让您准确区分用户静止不动的时间段和未佩戴设备的时间段。
True Zeros
真正的零值是指明确的数据点,表示用户佩戴了设备并积极进行跟踪,但特定指标的记录值为零。例如,用户在佩戴设备时,可能会在 1 分钟的时间间隔内记录到 0 步或 0 距离。
从历史上看,缺失的数据一直存在歧义。这可能表示用户处于久坐状态,也可能表示设备未佩戴在手腕上。该 API 通过在设备佩戴但处于非活动状态时明确存储并返回 0 值来解决此问题。这样可确保您能清楚区分静止佩戴时段和缺失的数据。
腕间过滤
腕上过滤是指识别用户是否实际佩戴了设备的过程。这样一来,API 就可以滤除多余的数据,例如设备放在包中时因车辆振动而记录的“虚假”步数。
支持的数据类型
以下数据类型支持“真零”行为和腕上过滤:
- 海拔高度
- 距离
- 楼层数
- 步骤
- 总卡路里数
对应用的影响
实现真实零值有助于更准确地解读数据缺口和计算指标(例如日平均值)。
列表和汇总行为
默认情况下,Google Health API 仅针对以下数据类型返回腕戴设备数据:
- 列表操作:仅返回设备佩戴期间的数据点。
- 数据缺口:列表中的缺口和缺失记录表示设备未佩戴在手腕上或未同步。
- 空记录:如果用户佩戴设备期间没有活动(即为零),系统会返回包含正常
dataSource和时间间隔或时间戳信息的数据点,但会省略特定于指标的字段(例如count属性)。这些值应解读为零值。
- 汇总操作:响应中的零表示真正的零(用户佩戴了设备,但没有移动)。如果跟踪设备在特定时间段内未佩戴,则 API 不会返回相应汇总窗口的数据。
在 list 操作中,当设备端算法重新对原始传感器遥测数据进行分桶时,连续的关联设备同步也可能会产生重叠的时间间隔。如需详细了解如何处理时间段重叠,请参阅数据管理指南。
与 Fitbit Web API 的比较
即使未佩戴追踪设备,Fitbit Web API 也经常返回数据(包括零)。Google Health API 可更准确地表示运动情况。
| 功能 | Fitbit Web API | Google Health API |
|---|---|---|
| 非活跃状态的模糊性 | 数据缺失可能表示处于不活动状态或未佩戴手环。 | 如果为 true,则明确表示穿戴时处于不活动状态。 |
| 数据缺口 | 数据缺口可能默认为 UTC 偏移量。 | 显式存储可解决时区和民用时间问题。 |
| 过滤 | 手环上的过滤功能有限。 | 严格的手环端过滤可确保生理指标的准确性。 |