HealthKit如何解决多个来源对同一活动的记录?


7

当在HealthKit中注册的多个“源” 跟踪同一活动时,会发生什么情况?

例如,如果我总体上由人类来跟踪我的活动,然后使用Cyclemeter(在10.3版中支持HealthKit)来跟踪特定的自行车骑行,则两者(我假设)都将向HealthKit提交相同的活动。大概HealthKit应该有可能认识到这些活动很可能是重复的,并且至少要问我如何解决“重复”问题(因为解决了同步冲突)。实际上,活动包含足够的数据,这样通常应该可以自动执行这种识别。

HealthKit是否这样做?它会解析相同活动(自动或半自动)的重复记录吗?


由于Cyclemeter 10.3尚未发布到应用程序商店,所以这可能为时过早。苹果显然正在通过iOS 8.0.2版本更改健康套件代码。
bmike

@bmike:Cyclemeter只是一个例子:这个问题适用于任何两个或更多来源。
orome 2014年

据信,应用商店中有零个应用会将数据注入健康套件中,因此我建议为时过早。我敢肯定,自6月以来,开发人员已经知道Apple如何编写代码才能正常工作,但是直到代码正式发布,我们才知道Apple实际编写和发布的内容。我的猜测是,数据将由反向域名标记,并且您将获得两组不合并的不同数据-但这只是猜测。
bmike

@bmike:现在有多个应用程序(8.0.2)与HealthKit一起工作。检查应用商店。
orome 2014年

为什么不编辑可实际使用的特定应用程序,然后进入您的问题呢?
bmike

Answers:


9

HealthKit非常聪明地处理您的数据。对于“健康”应用程序中的每个来源,您可以设置差异应用程序的优先级。点按“运行状况”应用程序中的一项指标,然后点按“ 共享数据”>“编辑”以正确的顺序拖动源。

如果其他应用程序请求数据,HealthKit可能会基于时间戳自动合并数据集。它首先选择高优先级的应用程序,并使用2号应用程序等填补数据空白。

WWDC将是获得完整概述的一个很好的开始。


2

据我研究,Paul Veugen的回答仅部分正确。如果您使用HKStatisticsQuery或HKStatisticsCollectionQuery,则HealthKit会合并此数据。否则,由您来决定是否提供合并/去重复结果的逻辑。

一种可能的解决方案是使用HKSourceQuery识别不同的来源,例如仅选择一个。

另一个可能是通过HKQuery结果中的HKSourceRevision访问源,并且仅从一个源获取数据或尝试比较来自不同源的数据。从iOS 9.3开始,还可以使用HKDevice访问不同的源设备。

携带一台设备总是会让您感到困惑,因为用户在请求的时间段内没有部分使用该设备,这将导致丢失数据点。

由于此优先顺序设置,结果仍然是痛苦的,因为Apple没有记录,如果所请求的数据将按照“健康”中用户定义的源优先级进行排序。

这样说来,可能值得研究重叠的日期范围以识别重复项。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.