安卓电池优化

标签 android

我正在开发一个具有前台服务的应用程序,并试图检测网络何时发生变化,以了解何时可以连接和不能连接。禁用省电 (Samsung S6) 后,可以完美地收听 ConnectivityManager.CONNECTIVITY_ACTION 广播。但是,当我启用省电功能时,我可能会丢失后台数据并且广播不再告诉我任何信息。

我怀疑它与打瞌睡有关,所以我尝试听 PowerManager.ACTION_DEVICE_IDLE_MODE_CHANGED 但它从未被触发。

如果我请求 Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS,我的问题就会消失,但谷歌正在从 Play 商店中提取应用程序以请求这个。有什么想法导致我失去网络连接以及如何成功地收听它来来去去吗?

最佳答案

用户必须禁用电池优化。
您可以通过以下方式为用户启动屏幕:

Intent intent = new Intent();
intent.setAction(Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS);
context.startActivity(intent);

因此提示用户禁用电池优化并在上面启动此 Intent 。

关于安卓电池优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39959171/

相关文章:

android - Google Play 服务器在许可响应中返回的响应代码(值)是什么?

java - 上下文操作栏 (CAB) 不覆盖工具栏

java - 进度条楼梯

android - Systrace '/sys/kernel/debug/tracing/tracing_on' 不存在

android - 如何在Android中交替实现两个倒数计时器

安卓工作室 JNI : cannot compile JPEG c-library

android - 如何将第一个Activity的ImageView共享并保存到第三个Activity

java - Eclipse - 在 Android 应用程序上引发未处理的异常时中断用户代码

android - Android 上的群组通知

android - Cordova hideKeyboardAccessoryBar 不工作