1
我正在使用運動活動管理器(更詳細 - 計步器)的iOS應用程序中工作。當應用程序啓動時,我需要檢查運動活動是否被用戶允許。我做iPhone - 請求運動活動
_motionActivityManager = [[CMMotionActivityManager alloc] init];
_pedometer = [[CMPedometer alloc] init];
[_pedometer queryPedometerDataFromDate : [NSDate date]
toDate : [NSDate date]
withHandler : ^(CMPedometerData *pedometerData, NSError *error) {
// BP1
if (error != nil) {
// BP2
}
else {
// BP3
}
}];
這樣做,因爲這裏☛iOS - is Motion Activity Enabled in Settings > Privacy > Motion Activity
在我的理解中討論此代碼將觸發「警報窗口」,要求用戶選擇加入/退出。
在我的情況會發生什麼事是,當我運行的應用程序首次(又名。所有的警告被複位),應用「BP1」(永遠不會執行回調)前掛機,然後,如果我停止的應用程序和Xcode或按出現主窗口「警告窗口」。如果我選擇了一切都很好,那麼第二次運行'BP3'(如果我選擇退出,則爲'BP2')。
我試圖做什麼遠:
我實現了使用異步執行
[_pedometer queryPedometerDataFromDate : [NSDate date] toDate : [NSDate date] 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); }); }];
這不掛檢查應用程序的另一種方式,但「警報窗口」被從未顯示
- 我執行了這個「檢查snipp et「在以後的代碼 - 但再次 - 應用程序掛起
沒有訣竅 - 所以底線 - **使支持視圖加載之前檢查被稱爲** – ajitam 2015-02-12 10:49:30