2014-01-08 12 views
12

アプリがMotion Activityデータにアクセスする必要がある場合は、インストール時にユーザーに確認します。しかし、ユーザーが誤って「いいえ」と答えた場合、アプリは機能しません。iOS - 設定>プライバシー>モーションアクティビティでモーションアクティビティが有効になっています

モーションアクティビティが有効になっているかどうかを確認する方法を探しています。そうしないと、有効にするようにユーザーに促すことができます。

誰かが私に正しい方向のコードを賢明に教えてもらえますか?


ドクからの情報に続いて(ありがとうございます)、AppleがプライバシーにMotion Activityの状態を確認するための直接的な方法を提供していないようです。私は、エラー時にピックアップして見つけることができました: -

[stepCounter queryStepCountStartingFrom:[NSDate date] 
            to:[NSDate date] 
           toQueue:[NSOperationQueue mainQueue] 
          withHandler:^(NSInteger numberOfSteps, NSError *error) { 
           if (error != nil && error.code == CMErrorMotionActivityNotAuthorized) { 
            // The app isn't authorized to use motion activity support. 
} 

答えて

10

Appleはhere(モーション活動を含む)すべての様々な権限をチェックし、要求アクセスする方法を示してsample projectを持っています。私はあなたがそれを素早く見てみることをお勧めします - それはかなり簡単です。

+0

こんにちは - 私はこれを見て取り、それが[CMMotionActivityManager isActivityAvailable]を使用しています。私はちょうどこれを試して、設定されているかどうかにかかわらず、常にTRUEを返します!非常に奇妙な、彼らが言うように、これが返されれば、彼らはUNAVILABLEと言います。彼らは 'チェック'を提供するようではなく、有効にするための最初の呼び出しを提供しているようです。しかし、それが無効にされている場合は、再要求しません! – MrNeilM

+2

'[CMMotionActivityManager isActivityAvailable]'は、デバイスがモーションデータをサポートしているかどうかを示すブール値を返します。つまり、許可を再申請する方法はありません。権限があるかどうかだけがわかります。そうでない場合は、設定アプリに入って自分自身で有効にするよう警告します。 – Doc

+0

設定は、設定アプリのプライバシーセクションにあります。権限を選択すると、適切なアプリに対してその権限を有効/無効にすることができます。 – Doc

4

iOSの9の新、CMSensorRecorderdoc link)はアプリがモーション&フィットネスのために許可されているかどうかを確認するために、クラスのメソッドを持っています

  • Switft​​
  • Objective-Cの+ (BOOL)isAuthorizedForRecording
+0

しかし、これは動きとフィットネスの追跡許可がユーザによって有効にされているかどうかを示していません – Nate

+0

これは受け入れられた答えであるべきです –

+0

これは質問 "アプリケーションがMotion&Fitnessのデータにアクセスする権限を持っていますか?」質問されていない デバイスのiOS設定(グローバルに)でモーションアクティビティのトラッキングが有効になっているかどうかを確認する方法があります。正解は「投稿された方法はありません」と投稿者独自のコメントを付け加えます。 –

1

iOS 11の新機能であるCMSSensorRecorderには、authorizationStatusという静的メソッドがあります。

+ (CMAuthorizationStatus)authorizationStatus;

関連する問題