我有一个应用程序,它将活跃的卡路里数据写入健康工具包。为了防止健康工具包中数据写入的重复,我阅读健康工具包活动卡路里来检查是否有一个实例已经存在。
我的印象是,要从健康工具包中读取活性卡路里,我们需要征得用户的允许才能阅读活性卡路里。
但是经过一些测试后,我发现我可以在没有得到用户许可的情况下阅读健康工具包中的活性卡路里数据。
这是一种正常的行为吗,我可以在没有用户许可的情况下从健康工具包中读取数据,因为我写了它?
我应该继续执行这个实现,还是这是一个bug?
发布于 2014-09-18 06:46:54
在健康工具包的深层隐藏的文档中找到了答案。
如果您的应用程序被授予共享权限,但没有读取权限,则只会看到应用程序写入商店的数据。来自其他来源的数据仍然隐藏着。
如果您的应用程序拥有读取数据类型的权限,您可以从HealthKit存储查询该数据;然而,即使您知道用户拒绝了您的数据读取请求,也可能会显示私有健康信息。因此,您的应用程序无法确定它是否具有读取特定类型数据的权限。如果用户不授予权限,则对受限数据类型的查询只返回应用程序共享的示例。否则,HealthKit存储似乎是空的。
因此,它不是一个bug.We可以读取我们写在健康工具包中的数据。
发布于 2014-09-15 11:50:41
苹果的文档说:
由于健康数据可能是敏感的,HealthKit通过提供对应用程序可以共享的信息的细粒度控制来授予用户对数据的控制权。用户必须明确授予每个应用程序权限,以便向HealthKit存储区读取和写入数据。用户可以对每种类型的数据分别授予或拒绝权限。例如,用户可以让您的应用程序读取步骤计数数据,但阻止它读取血糖水平。为了防止可能的信息泄漏,应用程序不知道它是否被拒绝读取数据。从应用程序的角度来看,如果应用程序被拒绝了读取数据的权限,那么这种类型的数据就不存在。
如果您能够从商店读取实际的商品,并且您确信您还没有允许应用程序的早期版本进行正确的访问(请检查设置),这听起来就像是一个应该向Apple报告的bug。
https://stackoverflow.com/questions/25847093
复制相似问题