三星设备(好吧,至少其中一些)将所有安装的应用程序添加到"应用程序节能模式"列表中,这会影响后台服务收听应用程序的一些关键信息。
有些应用程序在安装后会以某种方式禁用此模式,而无需任何额外步骤。三星线程上关于程序化禁用应用程序节能模式的评论表明,Facebook和WhatsApp等应用程序可能在操作系统白名单中,但我看到不那么受欢迎的应用程序也在做同样的事情。知道如何做到这一点吗?
我尝试过使用ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS
意图,但没有成功。PowerManager#isIgnoringBatteryOptimizations
开始返回true
,但应用程序的"应用程序节能模式"one_answers"电池节能设置"均未禁用。
如果你认为唯一的方法是联系三星将应用程序列入白名单,那么哪里是最好的地方?
此外,如果无法通过编程方式禁用应用程序节能模式,是否有方法检测是否为应用程序启用了节能模式,以便我可以打开应用程序并要求用户禁用它?
Hi有两种省电模式:
-
常规安卓Doze模式,
-
以及自定义的"省电模式。
对于瞌睡模式,动作:
Intent intent = new Intent();
intent.setAction((Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
intent.setData(Uri.parse("package:" + packageName))
并开始意图。
但对于自定义节能模式(尤其是华为和其他一些公司),您必须根据供应商的意愿启动自定义节能模式。列表如下:https://stackoverflow.com/a/48641229/4606542