我有一个带睡眠定时器的应用程序,用户可以在一段时间后选择该应用程序暂停。基本上我所做的是:
在应用开始时使用此代码来停用应用计时器:
[[UIApplication sharedApplication] setIdleTimerDisabled:YES];
睡眠定时器到期时:
[[UIApplication sharedApplication] setIdleTimerDisabled:NO];
一旦用户首选项中的自动锁定值启动,屏幕就会变暗,应用程序就会睡着。
工作正常但不再出于某种原因。我正在进行故障排除并注释掉涉及setIdleTimerDisabled的命令,但它仍然无法进入休眠状态。
如果我使用([UIApplication sharedApplication] .isIdleTimerDisabled)测试idleTimer的状态,我可以看到IdleTimer实际上没有被禁用,所以它不可能。
还有什么可以防止设备睡觉?当应用程序没有任何交互。我的设备运行9.3.3以防万一。
答案 0 :(得分:0)
我想我找到了答案 - 实际上有两个问题。 只要我在Xcode上运行并构建,该应用程序将永远不会进入睡眠状态(我认为)。 2.我的应用程序有声音,所以我正在做这样的事情,以确保控制和音频在设备锁定时仍然有效:
audioSession = [AVAudioSession sharedInstance];
NSError *setCategoryError = nil;
[audioSession setCategory:AVAudioSessionCategoryPlayback error:&setCategoryError];
然而,这可以防止设备睡眠 - 声音继续播放。所以我现在做的是,一旦屏幕被锁定,我将audioSession的类别更改为
[audioSession setCategory:AVAudioSessionCategoryAmbient error:&setCategoryError];
然而,这引起了另一个我尚未想到的问题......