ヒートキットがユーザーのデータを読み取ることが許可されているかどうかを確認したい場合、しかし、requestAuthorizationToShareTypesは常にtrueを返すようですか?ユーザーが私を許可したかどうかの参照を取得するにはどうすればよいですか?HealthKitが承認されているかどうかを確認する方法
override func viewDidLoad() {
super.viewDidLoad()
//1. Set the types you want to read from HK Store
let healthKitTypesToRead: [AnyObject?] = [
HKObjectType.workoutType()
]
//2. If the store is not available (for instance, iPad) return an error and don't go on.
if !HKHealthStore.isHealthDataAvailable() {
let error = NSError(domain: "com.myndarc.myrunz", code: 2, userInfo: [NSLocalizedDescriptionKey: "HealthKit is not available in this Device"])
print(error)
let alertController = UIAlertController(title: "HealthKit Not Available", message: "It doesn't look like HealthKit is available on your device.", preferredStyle: .Alert)
presentViewController(alertController, animated: true, completion: nil)
let ok = UIAlertAction(title: "Ok", style: .Default, handler: { (action) -> Void in })
alertController.addAction(ok)
}
//3. Request Healthkit Authorization
let sampleTypes = Set(healthKitTypesToRead.flatMap { $0 as? HKSampleType })
healthKitStore.requestAuthorizationToShareTypes(sampleTypes, readTypes: nil) {
(success, error) -> Void in
if success {
dispatch_async(dispatch_get_main_queue(), {() -> Void in
self.performSegueWithIdentifier("segueToWorkouts", sender: nil)
});
} else {
print(error)
dispatch_async(dispatch_get_main_queue(), {() -> Void in
self.showHKAuthRequestAlert()
});
}
}
}
代わりに、私はauthorizationStatusForTypeを試してみましたが、その列挙値に切り替えるが、私は常に許可てるという点で、同じ問題を抱えていました。
におけるアクセス許可のアクセスを要求し、チェックの例のシステムは、許可についてあなたを尋ねたことがありませんか? –
いいえ、それはありませんが、あなたはそれを許可していない場合でも、成功のブロックは – GarySabo