【发布时间】:2012-10-17 18:08:09
【问题描述】:
我正在实现一个应用程序,我需要通过以下方式跟踪用户的位置:
- 在应用处于后台或关闭时跟踪用户的位置
- 如果用户的位置改变了大约 2000 米,我应该执行 API 调用。
我解决这个问题的方法如下:
- 当用户第一次启动应用程序时,我开始使用他的当前位置监控一个区域
- 如果 didExitRegion 被触发,我执行 API 调用并将当前监控的区域替换为以当前位置为新区域中心的新区域。
当应用程序位于前台时,这可以正常工作,因为从位置管理器返回的位置是准确的。
但是如果应用程序在后台,那么位置管理器将不会返回准确的位置,因为它是第一次运行并且返回的第一个坐标不准确。
问题是当 didExitRegion 在后台触发时,我如何才能获得用户的准确位置?
谢谢
【问题讨论】:
-
请求位置管理器更新当前坐标并使用这些坐标怎么样?
-
这是我现在正在做的事情,但它没有给出准确的位置。我想知道是否有办法从位置管理器那里获得最准确的位置。
-
当应用进入后台时系统可能会改变所需的准确度?
-
@Kassem,你能解决这个问题吗?当
didExitRegion被调用时,我startLocationupdate并等待位置更新委托调用以获取当前位置。这大约有一半的时间。我也做registerBackgroundTask,但这并不能解决问题。它总是在模拟器上工作,但在实际设备上并不可靠。
标签: iphone objective-c ios5 cllocationmanager