iOS 5深度睡眠预防

时间:2011-12-19 12:38:57

标签: iphone ios5 nstimer

我正在尝试构建一个警报应用程序,可以在锁定屏幕模式下触发警报(应用程序位于前台,但屏幕已锁定)。警报必须由NSTimer触发,而不是由uilocalnotification触发。

在iOS 4中,我每隔10秒就使用“播放静音”,以防止应用进入深度睡眠状态,定时器事件正常。但是,在iOS 5中,这似乎不起作用。

有什么想法吗?或者这应该有效,我做错了什么?

3 个答案:

答案 0 :(得分:4)

似乎你实际上可以使用iOS 5中的“播放静音音频”黑客,但音频必须可听,这意味着您无法在音量设置为 0.0时播放

答案 1 :(得分:4)

您可以使用github.com/marcop/iPhoneInsomnia并将音量设置为大于0,但它仍然不起作用,因为声音文件太短,系统会在触发计时器之前杀死您的应用程序并重放声音。我通过将audioPlayer的numberOfLoops设置为-1(无限重复)来解决这个问题。然后它应该工作。

你还应该将UIBackgroundMode plist键设置为一个名为“audio”的字符串数组

答案 2 :(得分:2)

这可能是一个肮脏的解决方法,但在过去我使用接近传感器来关闭屏幕而不是锁定手机。只需将手机倒置,屏幕就会自动关闭。

[[UIDevice currentDevice] setProximityMonitoringEnabled:YES];

这将允许您在屏幕关闭时保持对设备的完全控制。