HealthKit:不允许读取 HKCorrelationType

Posted

技术标签:

【中文标题】HealthKit:不允许读取 HKCorrelationType【英文标题】:HealthKit: Reading HKCorrelationType is not allowed 【发布时间】:2014-10-23 00:47:03 【问题描述】:

当我尝试使用 HKCorrelation 样本类型初始化 HealthKit 时,应用程序崩溃并显示“不允许读取以下类型的授权:HKCorrelationTypeIdentifierBloodPressure”。

我已经成功读取了各种数量类型和睡眠类别类型。

代码不连续,但我正在调用

[healthStore requestAuthorizationToShareTypes:writeDataTypes
                                    readTypes:readDataTypes
                                   completion:^(BOOL success, NSError *error) 
... 

其中 readDataTypes 是一个 NSSet,其中包含我要阅读的样本类型集。其中之一是 HKCorrelationTypeIdentifierBloodPressure。

当我从套装中取出血压键时,它工作正常。

该集合还包括 HKQuantityTypeIdentifierBloodPressureSystolic 和 HKQuantityTypeIdentifierBloodPressureDiastolic 样本类型。

Apple 不希望我们读取组合数据类型吗?

【问题讨论】:

【参考方案1】:

我已成功请求对血压相关性的各个元素进行授权:

HKQuantityType *bpSystolicType = [HKObjectType quantityTypeForIdentifier:HKQuantityTypeIdentifierBloodPressureSystolic];
HKQuantityType *bpDiastolicType = [HKObjectType quantityTypeForIdentifier:HKQuantityTypeIdentifierBloodPressureDiastolic];

然后当我想查询样本时:

HKSampleType *type = [HKQuantityType correlationTypeForIdentifier:HKCorrelationTypeIdentifierBloodPressure];

【讨论】:

谢谢。这是有道理的 - 获得各个数据类型的授权(我已经这样做了),然后查询相关类型。让我试试看。

以上是关于HealthKit:不允许读取 HKCorrelationType的主要内容,如果未能解决你的问题,请参考以下文章

如何检查 HealthKit 中是不是允许读取步骤权限?

如何检查 HealthKit 中是不是允许读取步骤权限?

HealthKit HKAuthorizationStatus 用于读取数据

HealthKit HKAuthorizationStatus 用于读取数据

如果用户不允许某些条目类型,HealthKit 无法编写具有多个条目的 HKSample

如果用户不允许某些条目类型,HealthKit 无法编写具有多个条目的 HKSample