【发布时间】:2021-08-16 10:11:55
【问题描述】:
我想检查 HeathKit 是否已被授权让我读取用户的数据,如果我被授权继续锻炼,如果没有弹出警报。但是 requestAuthorizationToShareTypes 似乎总是返回 true?如何获取用户是否授权我的参考信息?
【问题讨论】:
我想检查 HeathKit 是否已被授权让我读取用户的数据,如果我被授权继续锻炼,如果没有弹出警报。但是 requestAuthorizationToShareTypes 似乎总是返回 true?如何获取用户是否授权我的参考信息?
【问题讨论】:
您无法确定用户是否具有授权访问权限
为了帮助保护用户的隐私,您的应用不知道用户是授予还是拒绝了从 HealthKit 读取数据的权限。如果用户拒绝许可,则尝试从 HealthKit 查询数据只会返回您的应用成功保存到 HealthKit 商店的样本。
您可以query 确定用户是否已响应访问一组健康工具包类型的请求。如果你得到HKAuthorizationRequestStatusUnnecessary,那么你已经请求了许可。如果你得到HKAuthorizationRequestStatusShouldRequest你应该请求许可。
如果您查询锻炼但没有得到任何锻炼,您应该显示一条消息,指示未找到锻炼,因为用户没有创建任何锻炼项目,或者他们需要检查权限以及有关在设置应用程序中检查权限的说明。
【讨论】:
如果您使用isHealthDataAvailable() 函数,则返回一个布尔值,指示此设备上是否有 HealthKit is available。
guard HKHealthStore.isHealthDataAvailable() else {
completion(false, HealthkitSetupError.notAvailableOnDevice)
return
}
【讨论】:
HealthKit 的可用性,这是不同的