【问题标题】:iPhone app running while screen lockediPhone 应用程序在屏幕锁定时运行
【发布时间】:2009-11-19 17:01:59
【问题描述】:

这是我正在拼命努力的事情:

我有一个应用程序,它以指定的时间间隔轮询 GPS 模块,然后使用 Unix 调用(例如 write())将坐标发送到服务器;当应用程序处于活动状态时它可以正常工作,但一旦屏幕锁定自身,报告就会停止。

我发现了这个:[UIApplication sharedApplication].idleTimerDisabled = YES;这确实使应用程序保持活力,但也会迅速使电池放电。我遇到了其他即使在屏幕被锁定的情况下也能传输音乐的应用程序(非 Apple 应用程序),因此我认为必须有一种方法来保持 GPS 数据流处于活动状态。

有人可以帮忙吗?谢谢!

【问题讨论】:

  • 我之前已经走过禁用屏幕锁定的路线,不仅电池消耗得很快,而且如果这样放置一个小时,设备会变得非常热!

标签: iphone screen locking keep-alive


【解决方案1】:

看看这个:

http://marcopeluso.com/2009/08/23/how-to-prevent-iphone-from-deep-sleeping/

这是一段用于禁用深度睡眠的代码。当您的应用程序继续在后台运行时,您的屏幕仍然可以关闭。

【讨论】:

    【解决方案2】:

    您必须让屏幕保持解锁状态。但这并不意味着您必须启用 GPS。您可以关闭 GPS 监视器并每隔几分钟将其唤醒,然后一分钟后出现的全黑“屏幕保护程序”应该会大大减少消耗。

    【讨论】:

    • Kendall,您能详细说明一下您的建议吗?如果我使用 [UIApplication sharedApplication].idleTimerDisabled = YES;这至少对我来说保持屏幕和 BG 灯亮着,因此电池大量流血。有没有其他方法可以保持屏幕解锁,但关闭BG灯?
    • 我认为没有任何方法可以禁用 BG 灯。当时的想法是,如果屏幕上的数据最少,那么电池消耗可能会减少,因此系统不会做任何其他工作来将图像保留在屏幕上。
    【解决方案3】:

    如果您的应用程序播放(或录制)声音,即使您播放静音,即使屏幕锁定,它也会继续运行。因此,您可能想尝试通过音频队列服务播放静音以保持您的应用运行。

    请注意,关于这个问题,我不知道任何与 GPS 相关的细节。另一位评论者说,当屏幕锁定时,特别禁止 GPS 运行(考虑到可能的隐私问题,这对苹果来说可能是一个明智的决定)。我无法判断这是否属实。

    【讨论】:

      【解决方案4】:

      我不是 100% 确定,但我想我在某处听说 GPS 模块仅在屏幕未锁定时工作。 (当然,除非你有越狱的手机……)

      我想我是在下载一个正在运行的应用程序时读到的,该应用程序在我跑步时跟踪我的位置。该应用程序有自己的“锁定屏幕”,我必须让它工作,这会很快耗尽电池。如果我要正常锁定屏幕然后再次解锁,它必须重新获取我的位置。

      【讨论】:

        【解决方案5】:

        我认为这是不可能的(这是我过去想做的事情)。例如,我知道可以访问 GPS 的 safari 浏览器在屏幕锁定时不会这样做,尽管这可能是设计使然,而非限制。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-10-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多