【问题标题】:iOS 5 deep sleep preventioniOS 5 深度睡眠预防
【发布时间】:2011-12-19 12:38:57
【问题描述】:

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

在 iOS 4 中,我使用了“每 10 秒播放一次静音”技巧来防止应用进入深度睡眠,并且计时器事件运行良好。但是,在 iOS 5 中,这似乎不起作用。

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

【问题讨论】:

  • 彼得,你在使用 github.com/marcop/iPhoneInsomnia 并将音量设置为 0.1 吗?
  • 作为基础 - 是的。但是代码有一些问题,所以我改变了一些东西。
  • 你还记得你所做的改变吗?
  • 可能。也许你应该问你的问题?
  • =)。除了音量值,你还有什么变化?

标签: iphone ios5 nstimer


【解决方案1】:

看来您实际上可以在 iOS 5 中使用“播放静音音频”技巧,但音频必须是可听,这意味着您无法以设置为 0.0 的音量播放它.

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

      [[UIDevice currentDevice] setProximityMonitoringEnabled:YES];
      

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

      【讨论】:

      • 这是一个有趣的想法。不是我真正想要的,但仍然有用。
      • 我喜欢!应用程序是否永远不会使用这种技术进入锁定屏幕模式?
      • 不,从来没有。这也是其他一些应用程序使用的。请注意,电池仍然会耗尽,因此最终手机将进入“锁定”状态。 ;-)
      猜你喜欢
      • 2014-08-07
      • 2017-09-29
      • 1970-01-01
      • 1970-01-01
      • 2013-03-28
      • 1970-01-01
      • 2013-04-30
      • 1970-01-01
      • 2022-06-10
      相关资源
      最近更新 更多