屏幕锁定时,Android 无法接收位置更新

Posted

技术标签:

【中文标题】屏幕锁定时,Android 无法接收位置更新【英文标题】:Android not receiving location updates when screen is locked 【发布时间】:2014-04-05 15:50:27 【问题描述】:

我的应用必须持续跟踪用户。为此,我有一个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();

但它仍然没有收到更新。

【问题讨论】:

看看here应该能帮到你 已经在这里回答Link to answer having complete code 已经在这里回答Link to answer having complete code 【参考方案1】:

刚刚遇到同样的问题。尽管它在服务中,但我也有相同的代码。奇怪的是它没有用。插入我的笔记本电脑和 运行android app high CPU usage, no services or wakelocks中提到的命令:

adb shell dumpsys power |grep -i wake

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

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

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

【讨论】:

以上是关于屏幕锁定时,Android 无法接收位置更新的主要内容,如果未能解决你的问题,请参考以下文章

我想在 Firebase onMessage 接收方法上播放自定义通知音,当锁定屏幕 android 手机时

屏幕锁定时的 navigator.geolocation.getCurrentPosition()

打盹/待机功能如何影响位置更新?

Android Fused location api,当我在家时提供错误的位置更新并锁定到我的 WiFi 网络

如何更改锁定屏幕/控制中心的轨道位置?

android 中如何设置焦点的位置。