我们的产品需求是 记录用户的轨迹信息,然而现在厂商限制比较厉害,锁屏后定位都不能用了。
找遍了网上说的方案,什么一像素保活啊、后台播放无声音乐 双进程守护啊、试用了下 都不怎么靠谱。
大神们 有没有 行之有效的解决方案,来解决安卓的后台定位问题?
我 发现 两步路助手 不开启 自启动和电池不限制 多数时候也能正常定位。不知道他们是怎么解决的
https://ask.dcloud.net.cn/article/36949 你也可以看下这篇文章
问题 应该是手机锁屏后的电池优化机制引起
3.1、手机电池模式调节成高性能;
3.2、代码中把上传坐标的服务设置成前台服务,并定时刷新通知信息:
startForegroundService()
3.3、代码中把app添加到电池优化白名单中:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
try {
String pn= getPackageName();
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
if (!pm.isIgnoringBatteryOptimizations(pn)) {
Intent intent=new Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS;
intent.setData(Uri.parse("package:" + pn));
if (intent.resolveActivity(getPackageManager()) != null) {
startActivityForResult(intent, REQUEST_CODE);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
3.4、service中上传坐标的逻辑执行前加入WakeLock锁,结束后释放;
3.5、使用双service绑定。
高德地图 官网提供的方案 在小米青春版 10系统 手机上 都没有效果
希望可以得到 一个自己测试过没问题的解决方案,而不是随便百度的
因为我已经百度测试了好多 网上方案,经过本人亲自测试,结果总是不尽如人意