我需要在拨打电话号码的同时在后台获取准确的位置(尽可能准确)(该呼叫将通过应用程序进行)。据我所知,从文档中我可以听到背景中位置的重大变化。我想知道重大更新有多准确,何时会触发。
我需要拨打电话的地点,因为这是紧急电话。听取前景中的位置然后拨打电话并不是一个好主意,因为这将是紧急情况 - 将立即拨打电话。
是否有解决方案可以在后台获得准确的用户位置?你推荐什么?
编辑:位置将立即发送到服务器。
答案 0 :(得分:0)
至于准确度,您可以在conditions:
下的后台获得准确的位置在后台获取位置事件
如果您的应用程序需要提供位置更新,无论应用程序是在前台还是后台,那么有多种选择可以执行此操作。首选方案是使用重要位置更改服务在适当的时间唤醒您的应用程序以处理新事件。但是,如果您的应用程序需要使用标准位置服务,则可以将您的应用程序声明为需要后台位置服务。
只有在缺少这些服务会影响其运营能力的情况下,申请才应申请后台位置服务。此外,任何请求后台位置服务的应用程序都应使用这些服务为用户提供切实的好处。例如,逐向导航应用程序可能是后台定位服务的候选者,因为它需要跟踪用户的位置并在下次转弯时报告。
至于在通话过程中获取位置,我自己并没有使用它,但导航应用程序如' waze'在打电话时告知转弯和导航事件,所以我想你的问题是可能的。
如果我了解您的需求,您有两种选择:
如果您认为用户是静态的,那么只需在拨打电话之前获取用户位置即可。或者当你的应用程序被用来拨打紧急电话时更好。
如果用户正在移动,那么您可以询问'获取背景位置事件。 即便如此,您应该考虑使用重要的更改位置服务'因为你不需要更多的用户位置。标准的定位服务'用于导航'转弯'服务。
* 最后评论*
如果您的应用是紧急应用,请阅读“节约电池电量提示”#34;在上一个链接中。在追踪他的位置时,你不希望你的用户电池耗尽。
答案 1 :(得分:0)
您是否可以在app plist文件中添加该标志,以请求位置服务在后台模式下运行。
然后在您的应用中,当用户按下“呼叫”按钮时,您可以在执行呼叫之前执行正常的CLLocationManager didUpdateToLocation。
在didUpdateToLocation方法中,您可以在写入应用程序沙箱库/缓存文件夹的TXT文件中记录用户的位置,也可以使用NSUserDefaults。
注意:即使用户按下锁定屏幕,我也会编写一个记录用户GPS位置的应用程序,因此我相信即使应用程序最小化,您的应用也可以将GPS坐标写入TXT文件,只要你开始你的位置经理。