屏幕关闭时,Android 10 会阻止网络请求和 GPS 呼叫

Posted

技术标签:

【中文标题】屏幕关闭时,Android 10 会阻止网络请求和 GPS 呼叫【英文标题】:Android 10 blocks network requests and GPS calls when screen is off 【发布时间】:2020-07-12 19:29:14 【问题描述】:

我制作了一个应用程序,它实际上每 15 分钟将用户位置发送到服务器。这使用触发下一个的警报管理器(一个镜头)。警报管理器触发前台服务,该服务负责获取用户位置并上传到我的服务器。

当用户与设备交互时,流程非常棒。当屏幕关闭(锁定)时,它可以在一段时间内正常工作,后来它无法发送请求并获取 GPS 数据。所以我使用唤醒锁打开屏幕 30 秒,以便设备退出打盹模式。

这种方法在 android 8,9 中运行良好,但在 Android 10 中仍然失败。我什至也使用了 PowerManager.LOCATION_MODE_THROTTLE_REQUESTS_WHEN_SCREEN_OFF 唤醒锁,但 HTTP 调用和 GPS 数据仍然被阻止。我实现了一个记录器来保存存储在文件中的每个操作。我看到服务正在被调用,但 GPS 数据没有被触发。还有一件事是我使用 Handler 甚至 Timer Task 实现了一个 Timer 来处理 Location timeout 以便我可以在超时发生时发送其他数据,这有时有效,有时失败。

我怎样才能解决这个问题?有什么解决办法吗?

注意:我使用警报管理器的原因是因为它们实际上是在设备打盹时触发的。据我了解,工作经理适用于可以推迟的工作。关闭应用时,BTW Work Manager 无法在中文 Roms 中工作。

【问题讨论】:

你有什么解决办法吗?自过去 10 天以来,我也一直坚持下去。 【参考方案1】:

我也遇到了同样的问题,通过禁用移动设备中的省电选项解决了这个问题。

【讨论】:

以上是关于屏幕关闭时,Android 10 会阻止网络请求和 GPS 呼叫的主要内容,如果未能解决你的问题,请参考以下文章

Android:浏览器关闭“窗口”

在 Android 应用冷启动时,阻止网络请求,直到 *** 启动

当我的应用在IOS中处于活动状态时如何阻止屏幕截图[关闭]

当应用程序在android上关闭时如何阻止重新启动服务?

屏幕关闭时 Android 通知不起作用

阻止访问android中的其他应用程序[关闭]