在后台模式勾选Location updates;
建立大移动监听类:CLLocationManager实例调用 startMonitoringSignificantLocationChanges,这时回调didUpdateLocations就能得到相关的位置信息;
监听移动再起一个管理类CLLocationManager实例调用startUpdatingLocation,这时回调didUpdateLocations就能得到相对准确的位置信息;startMonitoringForRegion可以辅助监听
对于监听移动需要注意的点:(括号内为我预设的值,仅做参考)
启动:预计启动速度(5),预计启动点数量(5),预计启动时间(20s)...
运行:更新distanceFilter,高速过滤(220/3.6)
停止:预计停止速度(3),预计停止点数量(15),预计停止步数(30),强停止计时时间(3*60s)
bug:
1.startMonitoringSignificantLocationChanges 返回数据多次返回一模一样,时间相隔数分钟,所以这个数据绝对不可取;
2.录入点最好做放重处理,我有一个设备(6s,9.2),单秒返回20多点甚至更多,40分钟录入了1.5G数据!
3.通话监听callObserver返回的状态并不准确,可能我没有设置VoIP;
4.未启动成功或停止要关闭监听移动的UpdatingLocation,即使不开后台线程,startUpdatingLocation返回数据3分钟左右保持活跃,所以根本停不下来;
5.轻轨——地铁,地下没有gps但是后台线程也是在保活。我参照引用计数的操作对每次打点前后进行校验,计数=0预置销毁。
期望:
1.各种设备对于数据的记录是不同的,根据机型和运行记录从而精准用户模型,生成用户的配置数据;
2.对用户范围绘制,完善位置信息,监听更准确的Region,让启动更加准确;
3.去除不必要的数据,目前链车多余传感器数据(0.2s)、高德路况数据,还能优化20%的空间吧;