如何通过 healthkit 使用 Apple Watch 心率更新 iOS 应用程序? (HealthKit 同步)

Posted

技术标签:

【中文标题】如何通过 healthkit 使用 Apple Watch 心率更新 iOS 应用程序? (HealthKit 同步)【英文标题】:How to update iOS app with Apple Watch heart rate via healthkit? (HealthKit sync) 【发布时间】:2015-09-10 02:03:52 【问题描述】:

我的手表应用能够轻松地从 HKAnchoredObjectQuery 中 HealthKit 的新 updateHandler 读取新的心率数据。

问题是,手机应用观察到的健康商店似乎与手表不同步。

暂停和恢复应用有时会提示 HealthKit 在手表的健康存储和手机存储之间进行(似乎是)同步。我不知道为什么会这样。

我需要一些方法来不断地在设备之间重新同步运行状况存储。如果我只是通过WatchConnectivity将最新的心率数据从手表发送到手机应用程序,那么我确实可以获得我需要显示的数据,但是如果我将这些数据提交到商店,我会在手表的时候得到重复存储同步。

这是一个主要问题,因为它破坏了 HealthKit 作为读取和写入健康数据的可靠单一位置。

编辑:Apple Bug 报告雷达https://openradar.appspot.com/radar?id=5033927626457088

【问题讨论】:

使用WatchConnectivity也不尽如人意,因为当手表应用失去焦点时它不起作用。 【参考方案1】:

您的应用无法强制 HealthKit 在手表和手机之间同步数据。您已经使用 WatchConnectivity 执行的操作是显示来自手表的实时数据的推荐方法。

【讨论】:

我想的也差不多。在封装我需要的完整数据集之前,我必须强制用户重新启动手表应用程序。与此同时,我已经向 Apple 提交了增强请求。 您应该在此处发布雷达编号,以便任何细读的 Apple 工程师都可以轻松找到它! 很糟糕,您必须使用手表上运行的手表应用程序/扩展来代理 HealthKit 数据检索,并通过手机上的 HealthKit API 但通过 WatchConnectivity 传输您可以访问的相同数据API,以便 iPhone 应用程序能够获取实时数据。除了 Apple 提供的东西之外,没有人想出一个代理框架来公开您可以通过 WatchConnectivity 在手表上实时收集的所有 HealthKit 数据吗? #opensourceopportunity :)

以上是关于如何通过 healthkit 使用 Apple Watch 心率更新 iOS 应用程序? (HealthKit 同步)的主要内容,如果未能解决你的问题,请参考以下文章

如何在离线模式下从 Apple Watch 导入使用 HealthKit 的步骤?

Apple Healthkit 和手表模拟器

如何根据 Apple Health 中的时间戳查询 healthkit 数据? [关闭]

Apple Healthkit 和 iOS 7 部署目标

如何在 HealthKit 中获得使用 Cordova 编写锻炼路线的许可

如何在 HealthKit 中获得使用 Cordova 编写锻炼路线的许可