【发布时间】:2015-08-30 19:19:42
【问题描述】:
我在 Apple Watch os 2 上成功地在没有锻炼会话的情况下实时获取心率数据。但是当 Apple Watch 屏幕关闭时,我的完成块不再被调用。我想继续实时管理这些数据,并在心率过低时让我的手机响铃。 也许我可以让 iphone perma 上的应用程序打开,也许它可以在锻炼期间访问 healthkit 数据? 你认为这行得通吗?还是你有别的想法?
问候
【问题讨论】:
-
您能否告诉我们您是如何在不进行锻炼的情况下实时获取心率数据的?您是否将代码放在手表套件扩展或视图控制器中?提前致谢。
-
我在下面的答案中解释了所有内容;)。在 iphone 应用程序(视图控制器)中,我执行了 HKAnchoredObjectQuery。我创建了一个 nstimer 来每 5 秒调用一次我的请求。 iOS 9 有一个错误,当健康 iphone 应用程序打开时,请求不允许您获取最新的心率数据。在您的应用中请求这些数据之前,您需要先终止健康原生应用。
-
非常感谢您的回复。是否可以使用 HKWorkOutSession 获取心率? HKAnchoredObjectQuery 和 HKWorkOutSession 哪个更好连续获取心率?
-
心率数据未从我的 Apple Watch 存储在“健康”应用程序中。你能帮我解决这个问题吗?
-
您需要创建一个 HKWorkOutSession 并进行 HKAnchoredObjectQuery 以获取此锻炼会话生成的数据。你可以在这里看到我的接口控制器。我在我的 iphone 应用程序上使用几乎相同的 HKAnchoredObjectQuery 从 iphone 获取这些数据。尝试杀死健康应用并重新打开它,您应该会看到您的心率数据,但正如我所说,您需要杀死而不是重新打开此应用才能实时访问心率数据。
标签: objective-c watchkit apple-watch healthkit