安卓手机锁屏后无法接收位置更新

10

我的应用程序需要持续跟踪用户。为此,我使用了一个LocationListener对象,它应该持续接收位置更新。问题在于当屏幕关闭时,它无法接收到任何更新。

我尝试添加了一个部分唤醒锁:

mLocationRequest = LocationRequest.create();
        mLocationRequest.setInterval(LocationUtils.UPDATE_INTERVAL_IN_MILLISECONDS);
        mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
        mLocationRequest.setFastestInterval(LocationUtils.FAST_INTERVAL_CEILING_IN_MILLISECONDS);
        mLocationClient = new LocationClient(ADS.getAppContext(), new LocationGatherer(), new LocationGatherer());
        mLocationClient.connect();
        PowerManager pm = (PowerManager) ADS.getAppContext().getSystemService(Context.POWER_SERVICE);
        PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "My Tag");
        wl.acquire();

但它仍然没有收到更新。


看一下这里,它应该能帮助你。 - Lefteris
已经在这里回答了 链接到包含完整代码的答案 - Shrini Jaiswal
已经在这里回答了 链接到包含完整代码的答案 - Shrini Jaiswal
1个回答

3

我也遇到了同样的问题。尽管我的代码是在服务中编写的,但奇怪的是它并没有起作用。我将设备连接到我的笔记本电脑上,并运行了Android app high CPU usage, no services or wakelocks提供的命令:

adb shell dumpsys power |grep -i wake

突然间,位置更新开始到达(电源按钮被按下并且屏幕关闭)。

我真的不知道可能出了什么问题,但这对我解决了问题。

目前,即使屏幕关闭,也能收到位置更新。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接