作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在开发与加速相关的应用程序。我正在使用 CMMtionManager
对象。但是当我调用 startaccelerating
方法时,它的工作并不断调用该方法,即使是在空闲模式下的 iphone。 如何在 iphone 加速和空闲时停止和开始加速。
- (void)viewDidLoad
{
[super viewDidLoad];
motionManager=[[CMMotionManager alloc]init];
motionManager.accelerometerUpdateInterval=2;
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
[self startMyMotionDetect];
}
- (void)viewDidDisappear:(BOOL)animated
{
[super viewDidDisappear:animated];
[motionManager stopAccelerometerUpdates];
// Request to stop receiving accelerometer events and turn off accelerometer
}
- (CMMotionManager *)motionManager
{
motionManager = nil;
id appDelegate = [UIApplication sharedApplication].delegate;
if ([appDelegate respondsToSelector:@selector(motionManager)]) {
motionManager = [appDelegate motionManager];
}
return motionManager;
}
- (void)startMyMotionDetect
{ NSLog(@"active %d",motionManager.accelerometerActive);
NSLog(@"availabilty %d",motionManager.accelerometerAvailable);
[motionManager
startAccelerometerUpdatesToQueue:[[NSOperationQueue alloc] init]
withHandler:^(CMAccelerometerData *data, NSError *error)
{
dispatch_async(dispatch_get_main_queue(),
^{
NSLog(@"hello");
[motionManager stopAccelerometerUpdates];
});
}];
}
请帮助我。
最佳答案
你试过添加这个吗?:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(stopAccelerometer)
name:UIApplicationDidEnterBackgroundNotification
object:nil];
关于iphone - 如何在iphone处于加速模式或空闲模式时启动和停止CMMotionManager startAccelerating和stopAccelerating?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15612585/
我是一名优秀的程序员,十分优秀!