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