在请求忽略电池优化后如何手动更改电池优化设置?

时间:2019-01-07 16:15:00

标签: android optimization battery power-saving doze

我使用以下代码请求忽略应用程序的电池优化。我可以成功申请许可。我可以使用isIgnoringBatteryOptimizations()检测该应用是否在系统的白名单中。

<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>


Intent intent = new Intent();
String packageName = context.getPackageName();
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);

if (pm.isIgnoringBatteryOptimizations(packageName))
    intent.setAction(Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS);
else
{
    intent.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
    intent.setData(Uri.parse("package:" + packageName));
}
context.startActivity(intent);

我可以看到一个对话框,类似“让应用程序始终在后台运行?”,然后单击“是”。我以为它会将我的应用添加到系统电池优化白名单中。

这是我的问题。该文档提到用户可以在设置>电池>电池优化中手动配置列表。因此,我希望一旦请求并授予了权限,便可以在“系统设置”中看到它,并且应该可以手动删除它。但是我什么也看不到。我看不到请求和“系统设置”中的列表之间有任何关系。

他们共享相同的列表吗?如果不相同,它们是等效的吗?

1 个答案:

答案 0 :(得分:1)

  

所以我希望,一旦我请求并授予了权限,就可以在系统设置上看到它

实际上不是这样。文档(https://developer.android.com/training/monitoring-device-state/doze-standby#support_for_other_use_cases)说:

  

拥有REQUEST_IGNORE_BATTERY_OPTIMIZATIONS权限的应用程序可以触发系统对话框,使用户可以直接将应用程序添加到白名单中,而无需进行设置。该应用会触发ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS目的来触发对话框。

这只是启动对话框的权限。该应用不会自动列入白名单。用户必须以任何方式将其明确添加到列表中。

  

他们共享相同的列表吗?如果不相同,它们是等效的吗?

只有一个列表。