【问题标题】:How to check Status whether HealthKit permissions have been granted如何检查状态是否已授予 HealthKit 权限
【发布时间】:2021-08-16 10:11:55
【问题描述】:

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

【问题讨论】:

    标签: ios swift healthkit


    【解决方案1】:

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

    来自documentation

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

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

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

    【讨论】:

      【解决方案2】:

      如果您使用isHealthDataAvailable() 函数,则返回一个布尔值,指示此设备上是否有 HealthKit is available

      guard HKHealthStore.isHealthDataAvailable() else {
          completion(false, HealthkitSetupError.notAvailableOnDevice)
          return
        }
      

      【讨论】:

      • OP 询问的是权限,而不是HealthKit 的可用性,这是不同的
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-17
      • 2020-03-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多