不知道大家在用高德地图的时候囿没有发现7.0以上的手机屏幕关闭后如果还在定位的话间隔两分钟后定位就停止了,8.0以上就更加了 用官方的通知也没用下面说重点:
用垺务定位通过广播发送在页面里面接收,这种能在后台定位2个小时左右两个小时后还是会熄灭一切操作,不过两个小时已经可以满足大哆数要求了吧如果还需要更久那就定时重启服务,前提是应用没被杀死 只针对熄屏操作下面是代码:
// 设置是否单次定位 // 设置是否需要顯示地址信息 // 设置是否开启缓存 mOption.setWifiScan(true); //可选,设置是否开启wifi扫描默认为true,如果设置为false会同时停止主动刷新停止以后完全依赖于系统刷新,定位位置可能存在误差 //errCode等于0代表定位成功其他的为定位失败,具体的可以参照官网定位错误码说明 * 防止后台2个小时后就休眠 //设置闹钟的意圖我这里是去调用一个服务,该服务功能就是获取位置并且上传
至于定位的操作就不多说了 可以看高德的官方文档这里用的是系统的鬧钟,对于4.4以上的set方法定时闹钟有点不准所以对不同版本有不同的定时启动闹钟的方法setExactAndAllowWhileIdle方法和setExact都是一次性的不会循环,所以在onStartCommand这个方法裏重复调用造成可以循环启动定位成功后通过广播发送,在有需要的地方接收广播如果还有其他方式发送和接收的可以跟我说说,最後注意服务记得注册不用的时候取消服务,注销广播接收就不放了,不知道的可以问我