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

如何从WatchOS获取近实时心率数据且不修改HealthKit数据、不影响健身圆环

Apple Watch 实时心率读取无HealthKit影响实现方案

方案1:无需启动HKWorkoutSession读取实时心率

该方案全程仅读不写,完全不会修改HealthKit数据,也不影响健身圆环统计:

  • 首先向用户申请HealthKit心率数据的只读权限,权限申请时toShare参数传nil,完全不获取写权限,从根源避免写入操作
    示例代码:
    let heartRateType = HKObjectType.quantityType(forIdentifier: .heartRate)!
    healthStore.requestAuthorization(toShare: nil, read: [heartRateType]) { success, error in
        // 授权成功后即可启动查询
    }
    
  • 用HKObserverQuery或者HKAnchoredObjectQuery监听心率样本更新,正常情况采样延迟1~3秒,满足大多数场景的实时性要求,App退后台时只要开启后台刷新权限就能持续接收数据
  • 该方案默认的心率采样频率为5秒1次,是Apple Watch常规状态下的默认采样频率

方案2:使用HKWorkoutSession获取更高采样率且禁止写入

如果需要1秒1次的高采样率心率数据,必须启动HKWorkoutSession的场景下,可以通过以下配置避免写入HealthKit:

  • 仅初始化HKWorkoutSession,不搭配使用HKLiveWorkoutBuilder,或是初始化Builder时不实现任何数据写入的代理方法、不主动调用add(_:completion:)这类写入接口
  • 全程不要向HealthKit写入任何本次会话关联的运动样本、能量消耗等数据,系统不会自动将未主动上报的会话计入健身圆环,也不会修改HealthKit内的任何数据
  • 该方案下的心率采样率可达到运动级的1秒1次,实时性更高

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 13:15:07