禁用或检测应用特定的省电模式

三星设备(好吧,至少其中一些)将所有已安装的应用程序添加到“应用程序省电模式”列表中,该列表会影响后台服务,以便收听应用程序的一些重要信息。

某些应用程序以某种方式在安装后禁用此模式,无需任何额外步骤。 关于在三星线程上以编程方式禁用应用程序省电模式的评论表明Facebook和WhatsApp等应用程序可能在操作系统白名单中,但我看到的应用程序不那么受欢迎。 知道怎么做到这一点?

我尝试过使用ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS意图但没有成功。 PowerManager#isIgnoringBatteryOptimizations开始返回true但应用程序无法同时禁用App Power Saving Mode和Battery Saver Settings中的内容。

如果您认为唯一的方法是联系三星将应用程序列入白名单,哪里是最佳选择?

此外,如果没有办法以编程方式禁用应用程序节能模式,有没有办法检测是否为应用程序启用了它,以便我可以打开应用程序并要求用户禁用它?

    您好有两种省电模式:

    • 常规的Android 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