iOS可以近乎实时地从Apple Watch获取心率

我需要制作一个近乎实时logging心率数据的应用程序,并尽快将这些数据发送到服务器。

首先我采取了这种方法: 观看操作系统2.0testing版:访问心脏跳动率

实际上它工作正常。 HealthKit每五秒钟有新的心率数据。 但现在我有问题,我不能与服务器同步。

我的第一个方法是手表应用程序。 手表正在向服务器发送数据。 这是行不通的,因为只要手表上的屏幕变黑,就停止发送。

我的下一个方法是每五秒钟在iPhone上查询HealthKit以获取新数据。 这工作,只要应用程序在前台。

然后,我看到有一些背景function可以监视HealthKit本身,并从后台撤消应用程序,并且可以执行某些操作。(enableBackgroundDeliveryForType)这对于心率来说似乎不起作用(Apple文档中提到了像这样的步骤不工作,我猜心率是其中之一)。

我现在卡住了。 你知道如何去做? 我需要一些在iPhone上每5-10秒执行一次的后台任务。 这似乎是不可能的

UPDATE

正如@BootMaker所注意到的,苹果公司为WatchOS 3中的 HKWorkout应用程序提供了后台模式,所以现在它正在运行。 您必须运行HKWorkoutSession ,即使在应用程序处于后台(黑屏)的情况下,也可以实时保持心脏的交付状态。

手表应用程序打开时, 最接近的

为什么我要说这个?

  1. 有两个HealthKit的数据库( 一个在iPhone上,另一个在Apple Watch上 )。 它们同步时是任意的,只能由操作系统决定

  2. 最接近实时的是当你没有任何密码lockingiPhoneApple Watch的屏幕。 无论采用哪种方式,都无法保证每次将新措施添加到Apple Watch的HealthKit时都会发生同步

  3. 强制心率传感器实时工作的唯一方法是通过锻炼观察者,而您的Apple Watch应用程序FOREGROUND

  4. 后台传送不适用于Apple Watch应用程序。

  5. 观看OS 2请求传感器每10分钟自动测量一次( 在后台 )。

没有其他解决方法, 如果您需要更长时间的实时 ,或者用户没有使用您的应用程序, 则需要使用专门的可穿戴设备