2016-08-06 5 views
4

私のアプリケーションではAppleHealthKitを使用しています。すべてが正しく機能しています。問題は、許可を求めるときにユーザが「許可しない」のボタンをタップしたかどうかを検出できないことです。この方法でユーザーがApple Health Kit Authorizationを許可していないかどうかを検出する方法は?

enter image description here

、私のアプリケーションは、ユーザーがこれを許可していないにもかかわらず、HealthKitを使用しています。

requestAuthorizationToShareTypes(healthKitTypesToWrite, readTypes: healthKitTypesToRead) { (success, error) -> Void in 
     if(completion != nil) { 
      completion(success:success,error:error) 
     } 

アップルのドキュメント:

enter image description here

だから、基本的に私の質問はこれを検出する方法ですか?あなたが設計によって、それを検出することはできません

答えて

5

:機密健康情報の可能性漏洩を防ぐために

、あなたのアプリケーションは、ユーザーがデータを読み取るためのアクセス許可が付与されているかどうかを判断することはできません。許可が与えられていない場合、HealthKitストアに要求されたタイプのデータがないかのように表示されます。

HKHealthStoreから)

3

ヨはなく、1つの特定のタイプのためにのみ書き込みデータのためにこれを行うことができます(uはそれらをチェックする必要がある場合はuがあまりにも他のタイプと同じことを行うことができます)

HKHealthStore *_healthStore; 
HKQuantityType *stepsType = [HKQuantityType quantityTypeForIdentifier:HKQuantityTypeIdentifierStepCount]; 

HKAuthorizationStatus status = [_healthStore authorizationStatusForType:stepsType]; 

BOOL isActive; 
switch (status) { 
    case HKAuthorizationStatusSharingAuthorized: 
     isActive = YES; 
     break; 
    case HKAuthorizationStatusSharingDenied: 
     isActive = NO; 
     break; 
    case HKAuthorizationStatusNotDetermined: 
     isActive = NO; 
     break; 

    default: 
     break; 
} 

NSLog(@"STATUS-------%@", isActive ? @"yes" : @"no"); 
関連する問題