如果应用程序在后台运行,如何获取当前位置的纬度和经度?

Posted

技术标签:

【中文标题】如果应用程序在后台运行,如何获取当前位置的纬度和经度?【英文标题】:How to get current location latitude and longitude if application running in Background? 【发布时间】:2012-12-07 09:54:45 【问题描述】:

我正在与 CLLocation 经理合作,

我已经实现了startUpdatingLocation 方法来获取当前位置的纬度和经度。

如果应用程序在前台运行,我会得到当前位置的纬度和经度,但是当应用程序在后台运行时,它就不起作用了。

如果应用程序在后台运行,请建议我如何获得当前位置的纬度和经度。

【问题讨论】:

一句警告。这对您的电池寿命非常不利,因此请确保您没有经常或准确地获得该位置。如果用户认为他们离开了您的应用程序,但发现他们的电池很快耗尽,他们将不会高兴。祝你好运。 【参考方案1】:

我刚刚从这个链接的 *** 中找到了答案:-

How do I get a background location update every n minutes in my ios application?

在 Apple 开发者论坛的帮助下找到了实现这一点的解决方案。我做了以下事情:

指定位置背景模式 通过使用UIApplication:beginBackgroundTaskWithExpirationHandler: 在后台使用NSTimer 如果n 小于UIApplication:backgroundTimeRemaining,它确实可以正常工作,如果n 更大,则应在没有剩余时间之前再次启用(和禁用)位置管理器以避免后台任务被杀。这确实有效,因为位置是三种允许的后台执行类型之一。

注意:通过在模拟器中测试它确实浪费了一些时间,它不起作用,在我的手机上可以正常工作。

【讨论】:

【参考方案2】:

在后台获取当前位置 在plist中指定位置后台模式。

【讨论】:

以上是关于如果应用程序在后台运行,如何获取当前位置的纬度和经度?的主要内容,如果未能解决你的问题,请参考以下文章

如何获取 Android GPS 位置

如何获取android移动设备的当前位置经纬度?

获取当前位置的经纬度问题

当应用程序在iOS swift 3中处于后台模式时如何每10秒获取一次纬度和经度

获取用户当前位置的经纬度

如何同时使用 GPS 和网络提供商在 Android 中获取当前位置的纬度和经度值