我正在尝试构建一个警报应用程序,可以在锁定屏幕模式下触发警报(应用程序位于前台,但屏幕已锁定)。警报必须由NSTimer触发,而不是由uilocalnotification触发。
在iOS 4中,我每隔10秒就使用“播放静音”,以防止应用进入深度睡眠状态,定时器事件正常。但是,在iOS 5中,这似乎不起作用。
有什么想法吗?或者这应该有效,我做错了什么?
答案 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];
这将允许您在屏幕关闭时保持对设备的完全控制。