8

这是我拼命努力工作的事情:

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

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

有人可以帮忙吗?谢谢!

4

5 回答 5

6

看看这个:

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

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

于 2010-02-08T13:25:17.340 回答
1

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

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

于 2009-11-21T23:44:52.613 回答
1

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

于 2009-11-19T21:19:34.993 回答
0

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

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

于 2009-11-19T17:13:34.320 回答
0

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

于 2009-11-19T17:15:44.677 回答