屏幕锁定时运行iPhone应用程序

时间:2009-11-19 17:01:59

标签: iphone screen locking keep-alive

这是我拼命想要开始工作的事情:

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

我发现了这个:[UIApplication sharedApplication] .idleTimerDisabled = YES;这确实可以使应用程序保持活跃状态​​,但也可以快速释放电池。我发现其他应用程序甚至在屏幕被锁定时播放音乐(非Apple应用程序),因此我认为必须有一种方法来保持GPS数据流的活跃。

有人可以帮忙吗?谢谢!

5 个答案:

答案 0 :(得分:6)

看看这个:

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

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

答案 1 :(得分:1)

你必须让屏幕保持解锁状态。但这并不意味着您必须启用GPS。您可以关闭GPS显示器并每隔几分钟将其唤醒一次,并且一分钟后出现的全黑“屏幕保护程序”应该会减少排水量。

答案 2 :(得分:1)

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

请注意,我不知道与此问题相关的任何GPS相关细节。另一位评论者表示,当屏幕被锁定时,GPS被禁止运行(考虑到可能的隐私问题,这可能是Apple方面的明智决定)。我无法告知这是否属实。

答案 3 :(得分:0)

我不是百分百肯定,但我想我听说GPS模块仅在屏幕未锁定时才能工作。 (除非你当然有越狱手机......)

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

答案 4 :(得分:0)

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