空闲定时器从未激活,所以应用程序从不睡觉



我有一个带有睡眠计时器的应用程序,用户可以选择在一定时间后,应用程序将暂停。基本上我要做的是:

  1. 在应用程序开始时使用以下代码来禁用应用程序计时器:

    [[UIApplication sharedApplication] setIdleTimerDisabled: YES];

  2. 休眠定时器到期时:

    [[UIApplication sharedApplication] setIdleTimerDisabled: NO];

一旦用户偏好设置中的自动锁定值打开,屏幕变暗,应用程序进入休眠状态。

它工作得很好,但由于某种原因不再工作。我正在排除故障,并已注释掉涉及setIdleTimerDisabled的命令,但它永远不会进入睡眠。

如果我用([UIApplication sharedApplication]. isidletimerdisabled)测试idleTimer的状态,我可以看到idleTimer实际上并没有被禁用,所以它不可能是那个

还有什么可以阻止设备睡眠?当应用程序没有任何交互时。如果有用的话,我的设备运行的是9.3.3。

我想我找到了答案——实际上有两个问题。1. 只要我在Xcode上运行和构建,应用就永远不会休眠(我认为)。2. 我的应用程序有声音,所以我这样做,以确保控制和音频仍然在设备锁定时工作:

audioSession = [AVAudioSession sharedInstance];
    NSError *setCategoryError = nil;
        [audioSession setCategory:AVAudioSessionCategoryPlayback error:&setCategoryError];

这将阻止设备进入睡眠状态——声音将继续播放。现在我要做的是,一旦屏幕被锁定,我将audioSession的类别改为

[audioSession setCategory:AVAudioSessionCategoryAmbient error:&setCategoryError];

然而,这引起了另一个问题,我还没有弄清楚…

相关内容

  • 没有找到相关文章

最新更新