Ignore manual entries from Apple Health app as Data Source

放肆的年华 提交于 2019-11-28 07:27:25

问题


Hi I'm writing a Fitness App which gets its Data from Apples Health app.

So far so good.

Problem: in Health app it is possible to make manually data entries which makes it possible to cheat.

Question: how can i exclude or ignore this specific Data Entries.

Just the Data with "Source: Health" so i've still the possibility to read data from a random Fitness tracker.


回答1:


Samples in HealthKit that were manually entered by the user will have have a YES value for the HKMetadataKeyWasUserEntered metadata key. To create a predicate that matches only samples that were not user-entered, you could do use the following:

[NSPredicate predicateWithFormat:@"metadata.%K != YES", HKMetadataKeyWasUserEntered];

Note that this must be formulated as value != YES because the value for the key could be YES, NO, or nil and nil implies NO.




回答2:


Swift 4:

let predicate = NSPredicate(format: "metadata.%K != YES", HKMetadataKeyWasUserEntered)

And if you have two predicates, useCompoundPredicate:

let compoundPredicate = NSCompoundPredicate(type: .and, subpredicates: [predicate1, predicate2])


来源:https://stackoverflow.com/questions/31184628/ignore-manual-entries-from-apple-health-app-as-data-source

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!