在iPhone屏幕关闭时,为什么摇动不起作用?

时间:2011-08-31 09:28:17

标签: iphone ios cocoa-touch shake

我正在应用中播放音频文件,因此当手机锁定且屏幕关闭时,它不会关闭。 但是,当我想要检测震动它不起作用。

当应用程序处于打开状态且屏幕被锁定(未关闭)时,它可以正常工作。该应用程序肯定在运行,因为日志工作正常。

有什么想法吗?

我使用以下代码:

-(BOOL)canBecomeFirstResponder {
    //make it respond to shake events
    return YES;
}

- (void)viewDidAppear:(BOOL)animated {
    //make it respond to shake events
    [self becomeFirstResponder];
}

- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event {
    if (event.type == UIEventSubtypeMotionShake) {
        NSLog(@"Shake detected");
    }
}

3 个答案:

答案 0 :(得分:1)

监控加速度计会导致手机额外耗电,因此在手机锁定时会被禁用。我不相信有办法解决这个问题。

答案 1 :(得分:0)

这会对你有帮助。

[[UIApplication sharedApplication] setIdleTimerDisabled:YES];

这不会让屏幕关闭。

希望这有帮助。

修改

但即使我感觉像阿克沙一样。屏幕关闭时无法捕获UIEvent。

答案 2 :(得分:0)

我不认为你可以在屏幕关闭时捕获UIEvents