我一直在尝试各种方案来取回结果,但没有运气。我从另一个问题中获取了代码并尝试使其工作,但仍然没有。我手动将数据输入健康状态以及从BP监视器读取数据,因此我知道那里有数据。没有报告错误。
func readSampleByBloodPressure()
{
let past = Date.distantPast
let now = Date()
let sortDescriptor = NSSortDescriptor(key:HKSampleSortIdentifierStartDate, ascending: true)
let type = HKQuantityType.correlationType(forIdentifier: HKCorrelationTypeIdentifier.bloodPressure)
let sampleQuery = HKSampleQuery(sampleType: type!, predicate: nil, limit: 0, sortDescriptors: [sortDescriptor])
{ (sampleQuery, results, error ) -> Void in
let dataLst = results as? [HKCorrelation];
for data in dataLst!
{
let data1 = (data.objects(for: HKObjectType.quantityType(forIdentifier: HKQuantityTypeIdentifier.bloodPressureSystolic)!)).first as? HKQuantitySample
let data2 = data.objects(for: HKObjectType.quantityType(forIdentifier: HKQuantityTypeIdentifier.bloodPressureDiastolic)!).first as? HKQuantitySample
print("Data Found")
/*
if let value1 = data1!.quantity.doubleValue(for: HKUnit.millimeterOfMercury()) , let value2 = data2!.quantity.doubleValue(for: HKUnit.millimeterOfMercury())
{
print(value1)
print(value2)
}
*/
}
}
self.healthStore?.execute(sampleQuery)
}
}
答案 0 :(得分:0)
这是由于未能授权收缩压和舒张压读数。在授权中,当您从Health Kit获取弹出窗口时,即使您选择“全部授权”,“全部”仅暗示显示的列表中显示的内容,而不是HealthKit可用的所有内容。在您的身份验证代码中,您需要指定您希望的每个内容,然后将在auth弹出窗口中显示。
作为旁注。如果您已完成此操作,并且如果您签入了运行状况应用程序,并且看到您想要的内容已获得授权但仍然无效,请尝试切换设置。显然,最初的批准并不总是如此。