15

我用过:

[UIApplication sharedApplication].idleTimerDisabled = YES;

在 iPhone OS 2.x 下开发和运行的许多应用程序中,从未遇到任何问题。它们是时钟应用程序,因此需要不断运行并忽略 iPhone 的空闲计时器设置。

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

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

我很惊讶没有其他人遇到过这种情况,因为我想它会影响大量的应用程序。

澄清一下:
1. 上面的代码在 ApplicationDidFinishLaunching
2. 我知道无论设置如何,从 xCode 测试时手机都不会自动锁定

如果有人有任何想法,我将不胜感激......

4

5 回答 5

16

我们的应用程序使用MPMediaPLayer. 我们在 中也有idleTimerDisabled=YES代码ApplicationFinishedLaunching,它可以在不受限制的情况下工作,并且已经有一个nowPlayingItem正在播放的电流(或未暂停,如果在应用程序启动时暂停)。显然,这一切都与Settings -> General -> Autolock设置为某个时间值有关。

通过添加idleTimerDisabled=NO,idleTimerDisabled=YES在我们弄清楚要播放的音乐之后立即在其他代码之一中添加 , 似乎可以解决问题。仅将其设置为YES是不够的.. 并且后续查询始终指示正确的值 ( YES).. 因此,如果存在当前音乐并且您的代码没有更改该值,Apple 代码似乎忽略了该值的设置。 .但确实注意到价值的变化。

这都是在iOS 3.0下。

于 2009-08-12T01:20:37.707 回答
3

即使在 2015 年,使用 iOS 8.2,这个 bug 仍然存在。

这是我的解决方案,使用 XCode 6.2。

iPhone - 即使 idleTimerDisabled 为 YES,手机也会进入睡眠状态

基本上,即使是现在,在 2015 年,安全确保设备不会进入睡眠状态的唯一方法是反复调用一段代码以保持设备清醒。

-(void)callEveryTwentySeconds
{
    //  DON'T let the device go to sleep during our sync
    [[UIApplication sharedApplication] setIdleTimerDisabled:NO];
    [[UIApplication sharedApplication] setIdleTimerDisabled:YES];
}
于 2015-03-25T13:24:06.863 回答
0

听起来像一个错误,使用 Radar 归档 - 我并不感到惊讶,因为可能没有很多应用程序试图锁定屏幕打开播放音乐。

于 2009-06-29T18:24:03.517 回答
0

有同样的问题。插入设备后它确实可以工作。您可以按下顶部的锁定按钮,我的 NSTimer 稍后会触发并引起振动。但是,如果设备未插入,按下锁定按钮会使设备进入睡眠状态。任何解决方案将不胜感激。

  • iCodeblog 发布了关于 idletimer 的帖子,我说它不起作用,开发“可爱时钟”的人很好地回复了。您必须使用 NSTimer 每隔 10 秒左右播放 1 秒或更长时间的静音。即使用户按下锁定按钮,这也会使设备保持唤醒状态。
于 2009-07-23T05:52:46.617 回答
0

我为 iPhone 和 iPod touch开发了 Seconds - Interval Timer ,我遇到了很多麻烦。我的应用程序的想法是人们根据多个间隔创建计时器,每个间隔都可以播放自己的播放列表或曲目。

在 iOS3 中,我遇到的问题是我无法通过设置 idleTimerDisabled = YES 来禁用空闲计时器。最后,我想出了与 Neil 相同的解决方案,我会定期将其设置为 NO,然后立即再次设置为 YES。这似乎奏效了。

我现在正在将应用程序更新到 iOS4(我知道,iOS5 指日可待......),现在我遇到了相反的问题。如果 MPMediaPlayer 在空闲计时器达到其限制之前更改轨道,它将被重置。我刚刚通过在我的应用程序中创建一个 55 秒的间隔来测试这一点,我的自动锁定设置为一分钟。在 50 秒时,屏幕在准备锁定时变暗,但在 55 秒时,当音乐改变时,它又恢复到全亮,然后没有按应有的方式锁定。

总体而言,这似乎充其量是不稳定的。

于 2011-08-26T14:10:09.990 回答