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

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

解决思路:

        刚开始想到该技术通过传感器中加速度计、计步器等数据,通过一系列算法计算分辨出,“人行”/“车行”。从而通过时间戳对照到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)设置正确。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容