iOS 关于《定位服务》后台一直开启的解决办法

2017-03-30  本文已影响0人  Ran_戈

        最近公司要做停车自动标记车辆位置的功能,这是室内定位反向寻车系统的前提条件,也是室内定位技术刚需!

解决思路:

        刚开始想到该技术通过传感器中加速度计、计步器等数据,通过一系列算法计算分辨出,“人行”/“车行”。从而通过时间戳对照到GPS定位点,从而做到标记车辆位置到地图上!

        经过测试iPhone 计步器和加速度计,发现当用户把手机锁屏或者APP挂起状态时候,计步器和加速度计,GPS都不会在后台发送数据,(因为要通过收集数据才能分析处理,所以挂起状态不发送数据从而不能从这思路解决问题)通过查阅资料,发现GPS定位服务可以在后台一直处于运行状态,以下是解决办法:

1、 首先把定位服务的后台启动模式打开 如图 1

图 1

2、设置CLLocationManager的属性,如图2。     

 提示:  1)2)3)4)一步不能少,少了APP就不能在后台一直运行了。

  1) 定位管理者需要一直请求定位服务,requestAlwaysAuthorization;

  2)需要允许后台更新数据更新,setAllowBackgroundLocationUpdates;

  3)  设置不允许暂停自动刷新数据功能,pusesLocationUpdatesAutomatically = NO;

  4)设置定位更新的最小距离为空,kCLDistanceFilterNone;

图 2

然后经过测试,定位服务和计步器、传感器都能在挂起状态不能被KILL掉。

注意: 之前没有设置2的  3) 4)的时候,APP有时候会在16分钟,18分钟,20分钟左右不发送用户位置,和计步器、传感器数据。一定要把3)4)设置正确。

上一篇下一篇

猜你喜欢

热点阅读