应用程序在后台运行时进行位置跟踪

Posted

技术标签:

【中文标题】应用程序在后台运行时进行位置跟踪【英文标题】:Location tracking while app running in the background 【发布时间】:2012-05-27 10:37:12 【问题描述】:

我有一个应用程序,它可以在前台运行时跟踪设备的当前位置。我也想在后台运行时做同样的事情。

我做了一些研究并尝试了以下方法:

已申请setKeepAliveTimeout:600 handler:^ [self backgroundHandler]; ];

当应用程序在调试下运行时,一切正常(我的意思是当设备连接到 mac pc 或连接到充电的设备时)。当设备与 PC 断开连接或充电应用在后台运行时无法跟踪当前位置。

这是为什么呢?

【问题讨论】:

【参考方案1】:

您需要将 UIBackgroundModes 键添加到您的 info.plist 文件中。这个键应该是一个数组,然后你需要给它加上值“location”。

更多信息:

http://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/LocationAwarenessPG/CoreLocation/CoreLocation.html#//apple_ref/doc/uid/TP40009497-CH2-SW10

【讨论】:

我已经添加了所有内容。在 info.plist 中,我还添加了诸如 voip、位置和音频之类的字符串。【参考方案2】:

查看 Breadcrumbs 示例应用程序和 WWDC 2010 关于在后台使用 CoreLocation 的讲座。讲座通过面包屑样本进行。

【讨论】:

以上是关于应用程序在后台运行时进行位置跟踪的主要内容,如果未能解决你的问题,请参考以下文章

如何避免我的应用程序在后台运行并跟踪我的位置时被终止?

当我“关闭” UISwitch 时,后台位置服务跟踪不会停止

想写后台位置跟踪应用程序android

在后台永远运行Swift 2.0应用程序以更新服务器的位置

服务无法在持续的后台位置跟踪上运行

即使在应用程序被杀死后如何继续进行 iOS 位置跟踪?