WWDC 2014 セッション 612 (45:14) では、Core Motion サービスの認証ステータスを確認する方法が強調されています。
- (void)checkAuthorization:(void (^)(BOOL authorized))authorizationCheckCompletedHandler {
NSDate *now = [NSDate date];
[_pedometer queryPedometerDataFromDate:now toDate:now withHandler:^(CMPedometerData *pedometerData, NSError *error) {
// Because CMPedometer dispatches to an arbitrary queue, it's very important
// to dispatch any handler block that modifies the UI back to the main queue.
dispatch_async(dispatch_get_main_queue(), ^{
authorizationCheckCompletedHandler(!error || error.code != CMErrorMotionActivityNotAuthorized);
});
}];
}
これは機能しますが、 への最初の呼び出しで-queryPedometerDataFromDate:toDate:withHandler:
は、システム ダイアログを介してユーザーに承認を求めるプロンプトが表示されます。明らかなUX上の理由から、ユーザーに許可を求めることなくステータスを確認したいと思います。
私が達成しようとしていることは可能ですか、それとも API について間違った方法で考えているだけですか?