You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用HKWorkoutRouteBuilder时如何将心率数据同步保存至HealthKit

解答

心率数据是否需要作为元数据保存?

不需要。
HealthKit 中 HKWorkout 的元数据仅用于存储描述运动特征的非样本类信息(如环境温度、运动场地类型、设备信息等)。心率属于独立的生理指标样本,有专属的HKQuantityType类型定义,最佳实践是将心率样本作为关联样本绑定到 Workout 下,而非存入元数据。这种存储方式可以让健康App正常识别心率数据,直接生成心率曲线展示给用户。

如果你确实有特殊需求需要在元数据中存入心率统计值(如平均心率、最大心率),可以使用系统预定义的元数据键,不要自定义键。

如何从Apple Watch获取实时心率

  • 首先需要申请健康数据相关权限:在App的Info.plist中添加NSHealthShareUsageDescription(写入权限)和NSHealthUpdateUsageDescription(读取权限),并填写清晰的用途说明
  • 构造心率查询对象来监听实时更新:使用HKAnchoredObjectQuery或者HKObserverQuery监听心率类型的样本更新,心率的类型标识为HKObjectType.quantityType(forIdentifier: .heartRate),单位默认是次/分钟(count/min)
  • 如果是在WatchOS端的App直接采集,可以使用HKWorkoutConfiguration开启运动会话后,系统会自动提高心率采样频率,获取到的样本会自动携带Apple Watch的来源标识,无需额外校验

心率相关的系统元数据键

如果你确实需要将心率统计值存入元数据,可使用以下系统内置键:

  • 平均心率:HKMetadataKeyAverageHeartRate
  • 最大心率:HKMetadataKeyMaximumHeartRate
  • 心率恢复值:HKMetadataKeyHeartRateRecoveryOneMinute

注意:直接存储原始心率样本到Workout的关联样本列表是官方推荐的标准方案,元数据仅建议存储统计类指标,不要存储全量原始心率数据。

内容的提问来源于stack exchange,提问作者Nic Hubbard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 06:51:01