问题:最近在开发中遇到一个需求,要求应用无论如何都要能在后台上传用户的实时位置。但是在Android8.0 的手机上连上电源可以上传,不连电源,GPS定位小图标一会就没了。然后也就获取不到位置信息, 导致不能上传。在网上搜索了 很久,发现跟多人都遇到了这个问题。但是都无法解决。
原因:Android 8.0系统增加了很多新特性,对位置影响较大的特性就是增强了对后台定位的限制,详细信息请参考:
https://developer.android.com/about/versions/oreo/background-location-limits.html
Android 8.0系统为实现降低功耗,无论应用的目标SDK版本为多少,Android 8.0系统都会对后台应用获取用户当前位置的频率进行限制,只允许后台应用每小时接收几次位置更新。
解决:好吧!原来是这个原因,找到了原因得解决啊。 各大地图平台,高德、百度都提供了解决方案,但是我测试了下,有些手机可以,有些手机不可以,我的荣耀的Android8.0就不行。并没有什么作用。后来实在不知道怎么办,既然这个不能代码实现,那就只能退而求其次,祈祷应用管理能有相关的设置了。于是就点进了应用的详情页面。点了每一个能点的地方。还真的发现了,原来在应用详情的电池、电量、耗电等相关的设置中。有一个后台活动的开关。开启后就可以了,只是后台运行时会被提示后台耗电。哎!总算是找到一种解决办法。不过感觉这东西是不是又跟白名单有关,这就不知道了,喝茶...思考...。
如果有其他好的方法,希望猿友们。能在下面分享一波。接受批评指教,谢谢。