Отключение или обнаружение конкретного режима энергосбережения

Устройства Samsung (ну, по крайней мере, некоторые из них) добавляют все установленные приложения в список "Режим энергосбережения приложения", который влияет на фоновые службы, прослушивающие важную информацию для приложения.

Некоторые приложения каким-то образом отключили этот режим после установки без каких-либо дополнительных шагов. Комментарии к Программно отключить режим энергосбережения приложений в Samsung, показывают, что такие приложения, как Facebook и WhatsApp, могут быть в белом списке ОС, но я видел приложения, которые не так популярны тоже самое. Любая идея, как достичь этого?

Я пробовал использовать ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS намерение, но не добился успеха. PowerManager#isIgnoringBatteryOptimizations начинает возвращать true, но ни один режим энергосбережения приложения, ни то, что в настройках экономии батареи не отключено для приложения.

Если вы считаете, что единственный способ связаться с Samsung для белого списка приложения, где лучше всего это сделать?

Кроме того, если нет возможности отключить режим энергосбережения приложения программно, есть ли способ определить, включен ли он для приложения, чтобы я мог открыть приложение и попросить пользователя его отключить?

Ответ 1

Привет, есть два режима энергосбережения:

  • обычный режим DoS-Do,

  • и пользовательский режим энергосбережения.

Для режима doze действие:

Intent intent = new Intent(); intent.setAction((Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS); intent.setData(Uri.parse("package:" + packageName))

и запустите намерение.

Но для пользовательских режимов энергосбережения (особенно Huawei и некоторых других) вы должны запускать пользовательские режимы энергосбережения, основанные на поставщике. Список находится здесь: fooobar.com/info/503208/...