自iPhone3以来,idleTimerDisabled无法正常工作

Cra*_*aig 14 iphone iphone-sdk-3.0

我用过:

[UIApplication sharedApplication].idleTimerDisabled = YES;
Run Code Online (Sandbox Code Playgroud)

在iPhone OS 2.x下开发和运行的许多应用程序中都没有任何问题.它们是时钟应用,因此需要不断运行并忽略iPhone的闲置定时器设置.

但是,尝试使用运行OS 3.0的新应用程序(并且需要在3.0下部署,因为它使用一些3.0 API)时,我发现空闲的Timer要么被忽略要么不一致.

我的应用程序播放iPod库中的音乐,当音乐播放时,无论上述设置如何,它都会自动锁定.但是一旦你解锁它,它就不会再次自动锁定,除非你再次播放音乐,在这种情况下它会在iPhone自动锁定时间设置后再次锁定.

我很惊讶没有其他人遇到这个,因为我想它会影响大量的应用程序.

只是为了澄清:
1.以上代码在ApplicationDidFinishLaunching
2.我知道从xCode测试时手机不会自动锁定,无论设置如何

如果有人有任何想法,我会非常感激......

小智 16

我们的应用程序使用MPMediaPLayer.我们也有idleTimerDisabled=YES代码,ApplicationFinishedLaunching如果不受限制,它的作用除外,并且已经有一个电流nowPlayingItem正在播放(或者取消暂停,如果在应用启动时暂停).显然这都是Settings -> General -> Autolock设定到某个定时值.

通过添加idleTimerDisabled=NO,然后idleTimerDisabled=YES在其他一些代码之后我们已经知道我们将要播放的音乐似乎可以解决问题.只是设置它YES是不够的..后续查询总是指示正确的值(YES)..所以它似乎Apple代码忽略值的设置如果有一个当前的音乐片段,并且您的代码不会更改.但确实注意到了价值的变化.

这一切都在iOS 3.0下.