【问题标题】:Why shake doesn't work when the screen is off on iPhone?为什么 iPhone 在屏幕关闭时摇晃不起作用?
【发布时间】:2011-08-31 09:28:16
【问题描述】:

我正在应用程序中播放音频文件,所以当手机锁定和屏幕关闭时它不会关闭。 但是,当我想检测抖动时它不起作用。

当应用程序打开和屏幕锁定(非关闭)时,它可以正常工作。该应用程序肯定正在运行,因为日志工作正常。

有什么想法吗?

我使用以下代码:

-(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");
    }
}

【问题讨论】:

    标签: iphone ios cocoa-touch shake


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      这会对你有所帮助。

      [[UIApplication sharedApplication] setIdleTimerDisabled:YES];
      

      这不会让屏幕关闭。

      希望这会有所帮助。

      编辑:

      但即使是我也和阿克沙伊一样。屏幕关闭时无法捕获 UIEvent。

      【讨论】:

      • 感谢您的回答。我知道而且我已经在使用它,但我想让它在屏幕关闭时也能工作。
      • @Tibidabo:检查我答案的编辑部分
      • 有趣的是,只要屏幕没有关闭,它就可以在锁定时工作。因此,如果我按下电源按钮将其关闭,它会停止工作,当我再次按下它时,它会调出锁定屏幕,它会再次开始工作。我想这一定是某种节电功能,你们都说了,我只是希望我错过了什么。
      • 我希望有一个解决方案,但至少我不必花费数小时来弄清楚这是不可能的。谢谢!
      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-05-10
        • 1970-01-01
        • 1970-01-01
        • 2011-02-26
        • 1970-01-01
        • 1970-01-01
        • 2011-10-10
        • 2011-07-11
        相关资源
        最近更新 更多