[英]iOS get heart rate from Apple Watch in near real time
我需要制作一个近乎实时地记录心率数据的应用程序,并尽快将这些数据发送到服务器。
首先我采用了这种方法: Watch os 2.0 beta: access heart beat rate
事实上,它运行良好。 HealthKit 中每五秒就会有新的心率数据。 但是现在我遇到了无法与服务器同步的问题。
我的第一个方法是 Watch 应用程序。 手表正在向服务器发送数据。 这不起作用,因为一旦手表上的屏幕变黑,它就会停止发送。
我的下一个方法是每五秒在 iPhone 上查询 HealthKit 以获取新数据。 只要应用程序在前台,这就有效。
然后我看到有某种后台功能可以监视 HealthKit 本身并从后台撤消应用程序,您可以做一些事情。不起作用,我猜心率是其中之一)。
我现在卡住了。 你知道怎么做吗? 我需要一些在 iPhone 上每 5-10 秒执行一次的后台任务。 这似乎是不可能的
更新
正如@BootMaker 所注意到的,Apple 在WatchOS 3 中为HKWorkout应用程序提供了后台模式,因此它现在可以工作了。 您必须运行HKWorkoutSession ,即使应用程序处于后台(手表上的黑屏) ,这也能实时保持您的心率传输
您最接近的是手表应用程序打开时。
我为什么要说这个?
有两个 HealthKit 的数据库(一个在 iPhone 上,另一个在 Apple Watch 上)。 当它们同步是任意的并且仅由操作系统决定时
最接近实时的是当您在iPhone或Apple Watch 中没有任何密码锁定您的屏幕时。 无论哪种方式,都不能保证每次向Apple Watch 的 HealthKit添加新度量时都会发生同步
强制心率传感器实时工作的唯一方法是在Apple Watch 应用程序处于FOREGROUND时通过锻炼或观察者。
后台传送不适用于 Apple Watch 应用。
Watch OS 2要求传感器至少每 10 分钟自动测量一次(在后台)。
没有其他解决方法,如果您需要更长的实时时间,或者当用户不使用您的应用程序时,您将需要使用专门的可穿戴设备。
如果有人仍然需要实时获取心率或其他数据。 使用此解决方案:
我测试过,即使应用程序终止,我们仍然可以获取心率(我使用本地通知发布心率数据以进行调试)
@nhatahm您的示例未在实际版本中运行。 iOS13 WatchOS6.1 Xcode11.2 beta2(11B44)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.