Я использую следующий код для запроса игнорирования оптимизации батареи для приложения. Я могу успешно запросить разрешение. Я могу определить, находится ли приложение в белом списке системы, с помощью функции 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);
Я вижу диалоговое окно, вроде «позволить приложению всегда работать в фоновом режиме?», И я нажимаю «да». Я предполагал, что это добавит мое приложение в белый список оптимизации системной батареи.
Вот моя проблема. В документации упоминается, что пользователь может вручную настроить список в Настройки> Батарея> Оптимизация батареи . Поэтому я ожидал, что после того, как я запрошу и предоставлю разрешение, я смогу увидеть его в настройках системы и смогу удалить его вручную. Но я ничего не вижу. Я не вижу связи между запросом и списком в Системных настройках.
У них один и тот же список? они эквивалентны, если они не одинаковы?