首页 > 解决方案 > 如何检查状态是否已授予 HealthKit 权限

问题描述

我想检查 HeathKit 是否被授权让我读取用户的数据,如果我被授权继续锻炼,如果没有弹出警报。但是 requestAuthorizationToShareTypes 似乎总是返回 true?如何获得用户是否授权我的参考?

标签: iosswifthealthkit

解决方案


您无法确定用户是否具有授权访问权限

文档

为了帮助保护用户的隐私,您的应用不知道用户是授予还是拒绝了从 HealthKit 读取数据的权限。如果用户拒绝许可,则尝试从 HealthKit 查询数据仅返回您的应用成功保存到 HealthKit 商店的样本。

您可以查询以确定用户是否已响应访问一组健康工具包类型的请求。如果你得到HKAuthorizationRequestStatusUnnecessary了,那么你已经请求了许可。如果你得到HKAuthorizationRequestStatusShouldRequest你应该请求许可。

如果您查询锻炼但没有得到任何锻炼,您应该显示一条消息,指示未找到锻炼,因为用户没有创建任何锻炼项目,或者他们需要检查权限以及在设置应用程序中检查权限的说明。


推荐阅读