iOS可以近乎实时地从Apple Watch获取心率
我需要制作一个近乎实时logging心率数据的应用程序,并尽快将这些数据发送到服务器。
首先我采取了这种方法: 观看操作系统2.0testing版:访问心脏跳动率
实际上它工作正常。 HealthKit每五秒钟有新的心率数据。 但现在我有问题,我不能与服务器同步。
我的第一个方法是手表应用程序。 手表正在向服务器发送数据。 这是行不通的,因为只要手表上的屏幕变黑,就停止发送。
我的下一个方法是每五秒钟在iPhone上查询HealthKit以获取新数据。 这工作,只要应用程序在前台。
然后,我看到有一些背景function可以监视HealthKit本身,并从后台撤消应用程序,并且可以执行某些操作。(enableBackgroundDeliveryForType)这对于心率来说似乎不起作用(Apple文档中提到了像这样的步骤不工作,我猜心率是其中之一)。
我现在卡住了。 你知道如何去做? 我需要一些在iPhone上每5-10秒执行一次的后台任务。 这似乎是不可能的
UPDATE
正如@BootMaker所注意到的,苹果公司为WatchOS 3中的 HKWorkout应用程序提供了后台模式,所以现在它正在运行。 您必须运行HKWorkoutSession ,即使在应用程序处于后台(黑屏)的情况下,也可以实时保持心脏的交付状态。
手表应用程序打开时, 最接近的 是
为什么我要说这个?
-
有两个HealthKit的数据库( 一个在iPhone上,另一个在Apple Watch上 )。 它们同步时是任意的,只能由操作系统决定
-
最接近实时的是当你没有任何密码lockingiPhone或Apple Watch的屏幕。 无论采用哪种方式,都无法保证每次将新措施添加到Apple Watch的HealthKit时都会发生同步
-
强制心率传感器实时工作的唯一方法是通过锻炼或观察者,而您的Apple Watch应用程序在FOREGROUND 。
-
后台传送不适用于Apple Watch应用程序。
-
观看OS 2请求传感器每10分钟自动测量一次( 在后台 )。
没有其他解决方法, 如果您需要更长时间的实时 ,或者用户没有使用您的应用程序, 则需要使用专门的可穿戴设备 。