使用 HealthKit 检索 SleepAnalysis 后,我仍然收到此 Authorization Not Defined 错误

Posted

技术标签:

【中文标题】使用 HealthKit 检索 SleepAnalysis 后,我仍然收到此 Authorization Not Defined 错误【英文标题】:After using HealthKit to retrieve SleepAnalysis, I still get this Authorization Not Determined error 【发布时间】:2017-06-07 15:52:32 【问题描述】:

几天来我一直在使用对这个错误的引用,试图找出解决方案:

[query] Error activating query: Error Domain=com.apple.healthkit Code=5 "Authorization not determined" UserInfo=NSLocalizedDescription=Authorization not determined

我一直在使用 HealthKit 成功检索睡眠数据,但现在我需要检索活动数据。我用这个功能设置了 HealthKit:

let typesToRead = Set([
        HKObjectType.categoryType(forIdentifier: HKCategoryTypeIdentifier.sleepAnalysis)!,
        HKObjectType.categoryType(forIdentifier: HKCategoryTypeIdentifier.appleStandHour)!,
        HKObjectType.characteristicType(forIdentifier: HKCharacteristicTypeIdentifier.dateOfBirth)!,
        HKObjectType.characteristicType(forIdentifier: HKCharacteristicTypeIdentifier.bloodType)!,
        HKObjectType.characteristicType(forIdentifier: HKCharacteristicTypeIdentifier.biologicalSex)!,
        HKObjectType.quantityType(forIdentifier: HKQuantityTypeIdentifier.height)!,
        HKObjectType.quantityType(forIdentifier: HKQuantityTypeIdentifier.bodyMass)!,
        HKObjectType.workoutType(),
        HKObjectType.activitySummaryType()
        ])

self.healthStore.requestAuthorization(toShare: nil, read: typesToRead)  (sucess, error) -> Void in
        if sucess == false 
            NSLog("Error...")
        
    

然后我创建我的查询:

let query = HKSampleQuery(sampleType: distanceType, predicate: nil, limit: 0, sortDescriptors: [startDateSort]) 
        (sampleQuery, results, error) -> Void in

        if let result = results 
            for item in result 
                if let sample = item as? HKQuantitySample 
                    self.workOutSamples.append(sample)
                
            
            print(self.workOutSamples)
        
    
    healthStore.execute(query)

我已将 Privacy - Health Update Usage DescriptionPrivacy - Health Share Usage Description 添加到 info.plist 并且我的应用程序的功能包括成功打开 HealthKit。

【问题讨论】:

【参考方案1】:

在 typesToRead 中添加了 HKObjectType.quantityType(forIdentifier: HKQuantityTypeIdentifier.distanceWalkingRunning)!。我的帖子没有显示我在创建distanceType 时使用了错误的类型:quantityType

【讨论】:

以上是关于使用 HealthKit 检索 SleepAnalysis 后,我仍然收到此 Authorization Not Defined 错误的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Swift 在 iOS 中显示从 HealthKit 中检索到的 HKDocumentSample?

使用 HealthKit 检索 SleepAnalysis 后,我仍然收到此 Authorization Not Defined 错误

一天的谓词格式,用于搜索从 HealthKit 检索的 Steps Sample Array

一天的谓词格式,用于搜索从 HealthKit 检索的 Steps Sample Array

从 HealthKit 检索心率数据时遇到问题

从 HealthKit 获取一系列血糖记录