Health Kit阅读许可

时间:2014-09-15 11:31:53

标签: ios ios8 health-kit

我有一个应用程序,它将活跃的卡路里数据写入健康套件。为了防止重复编写健康工具包中的数据,我会读取健康工具包活跃卡路里,以检查是否有一个实例存在。

我的印象是,要从健康套件中读取活跃卡路里,我们需要让用户同意阅读活跃的卡路里。

但经过一些测试后,我发现我能够在未获得用户许可的情况下从健康套件中读取活跃的卡路里数据。

这是正常的行为吗,我能够在没有用户许可的情况下从健康套件中读取数据,因为我已经写过了吗?

我应该继续这个实现还是这个错误?

2 个答案:

答案 0 :(得分:7)

在深层隐藏documentation健康套件中找到答案。

如果您的应用获得了共享权限但未获得读取权限,则只会看到应用已写入商店的数据。来自其他来源的数据仍然是隐藏的。

  

如果您的应用有权读取数据类型,您可以从HealthKit商店查询该数据;但是,即使知道用户拒绝了您读取数据的请求,也可能会泄露私人健康信息。因此,您的应用无法确定其是否具有读取特定类型数据的权限。如果用户未授予权限,则对受限数据类型的查询仅返回您的应用已共享的示例。否则,HealthKit商店似乎为空。

所以它不是一个bug。我们可以阅读我们在健康工具包中写的数据。

答案 1 :(得分:2)

Apple's documentation说:

  

由于健康数据可能非常敏感,因此HealthKit通过对应用程序可以共享的信息进行细粒度控制,从而授予用户对数据的控制权。用户必须明确授予每个应用程序读取和写入HealthKit存储数据的权限。用户可以分别为每种类型的数据授予或拒绝权限。例如,用户可以让您的应用读取步数数据但阻止其读取血糖水平。为了防止可能的信息泄漏,应用程序不知道是否已被拒绝读取数据的权限。从应用程序的角度来看,如果应用程序被拒绝读取数据的权限,则不存在该类型的数据。

如果您能够从商店中读取实际商品,并且您确定您尚未允许该应用程序的先前版本具有正确的访问权限(请参阅设置),这听起来像是应该向Apple报告的错误