Apple Watch Series 6 第三方应用能否主动调用血氧饱和度传感器检测
Apple HealthKit 血氧检测开发相关问题解答
1. 主动触发血氧检测的可行性结论
苹果官方当前未向第三方开发者开放主动调用Apple Watch血氧传感器发起检测的API权限,所有第三方应用仅能读取用户主动检测、或者Watch后台自动检测后同步到HealthKit存储的SPO2数据,无法自主触发检测动作。
2. Workout 会话中添加SPO2追踪的实现方案
- 首先明确:目前所有系统自带的
HKWorkoutConfiguration活动类型枚举,确实没有原生标记为支持血氧持续追踪的类型,也不支持自定义新增Workout类型的传感器追踪规则 - 可行的替代实现方案:
- 启动Workout会话时,同时注册HealthKit的后台更新监听,针对
HKObjectType.quantityType(forIdentifier: .oxygenSaturation)类型的数据设置观察者,只要Watch端有新的血氧数据写入HealthKit,你的应用就可以实时拉取同步 - 可以在应用中增加用户引导,提示用户在数据采集周期内主动开启Watch端的血氧检测,或者开启Watch的后台血氧自动检测功能(路径:Watch设置>血氧>启用后台测量),保障数据更新频率满足你的业务需求
- 如果是watchOS 9+的应用,可结合
HKLiveWorkoutBuilder在Workout会话运行期间,实时拉取已写入HealthKit的最新血氧数据,和你现有的心率采集逻辑做合并处理,同步到iOS端
- 启动Workout会话时,同时注册HealthKit的后台更新监听,针对
3. 权限配置注意项
- 读取血氧数据需要额外申请
HKAuthorizationStatus.read权限,对应的类型标识为HKQuantityTypeIdentifierOxygenSaturation,Info.plist中需要添加NSHealthShareUsageDescription和NSHealthUpdateUsageDescription的权限说明 - watchOS端的应用需要开启HealthKit能力,同时要保证用户已授予血氧数据的读取权限
内容的提问来源于stack exchange,提问作者KevvinG
相关产品推荐
相关产品推荐

