首先我采用了这种方法:Watch os 2.0 beta: access heart beat rate
事实上,它工作正常. HealthKit每五秒钟会有一个新的心率数据.但现在我遇到了无法与服务器同步的问题.
我的第一个方法是Watch应用程序.手表正在向服务器发送数据.这不起作用,因为一旦手表上的屏幕变黑,它就会停止发送.
我的下一个方法是每隔五秒钟在iPhone上查询HealthKit以获取新数据.只要应用程序位于前台,这就有效.
然后我看到有一些背景功能可以监视HealthKit本身并从后台撤消应用程序,你可以做一些事情.(enableBackgroundDeliveryForType)这似乎不适用于心率(Apple文档说这样做的步骤这个不起作用,我猜心率是其中之一).
我现在被困住了.你知道怎么做吗?我需要在iPhone上每5-10秒执行一次后台任务.这似乎是不可能的
解决方法
正如@BootMaker所注意到的那样,Apple在WatchOS 3中为HKWorkout应用程序提供了后台模式,因此它现在正在运行.您必须运行HKWorkoutSession,即使应用程序处于后台(观看黑屏),这也会实时保持您的实时交付
The closest you are going to be is while the watch app is open.
我为什么说这个?
>有两个HealthKit的数据库(一个在iPhone上,另一个在Apple Watch上).当它们同步是任意的并且仅由O.S.决定.
>您最接近实时的是当您没有任何密码锁定iPhone或Apple Watch中的屏幕时.
无论哪种方式,都无法保证每次向Apple Watch的HealthKit添加新度量时都会发生同步
>强制心率传感器实时工作的唯一方法是在Apple Watch应用程序处于FOREGROUND时通过锻炼或观察者进行锻炼.
> Apple Watch应用程序不提供后台交付.
>观察OS 2请求传感器每10分钟自动测量(在后台).
There’s no other workaround,if you need real time for longer periods,or while the user is not using your app,you will need to use an specialized wearable.