Android-приложение появляется в белом списке оптимизации батареи, но на самом деле его там нет

Фон:

Я разрабатываю приложение для Android. Когда приложение запускается, оно проверяет, исключено ли оно из оптимизации батареи, с помощью функции isIgnoringBatteryOptimizations(). Если эта функция возвращает false, я использую разрешение REQUEST_IGNORE_BATTERY_OPTIMIZATIONS, чтобы отобразить экран настроек оптимизации батареи, где ожидается, что пользователь добавит приложение в белый список.

Все это отлично работает, когда я запускаю приложение из Android Studio. Проблемы начинаются, когда я загружаю и устанавливаю версии-кандидаты.

Обратите внимание, что проблема, которую я опишу, возникает только на одном из двух моих телефонов. Эта проблема возникает на Sharp 507SH под управлением Android 7.0. Эта проблема не возникает на Sony SOV32, также работающем под управлением Android 7.0.

Проблема:

Когда я загружаю и устанавливаю версии-кандидаты (не используя Android Studio) и запускаю приложение, экран оптимизации батареи отображается как обычно. Однако приложение сразу появляется в белом списке «неоптимизированных». Обычно пользователю приходится вручную выбирать приложение и добавлять его. Но он появляется в списке. Таким образом, пользователь нажимает кнопку «Назад», чтобы вернуться в приложение, и все выглядит нормально. Однако приложения на самом деле нет в белом списке. Это подтверждается тем фактом, что приложение запрашивает пользователя каждый раз при запуске приложения, т. е. isIgnoringBatteryOptimizations() по-прежнему возвращает false.

Я могу добавить приложение в белый список "по-настоящему", сначала зайдя в настройки батареи и удалив его из белого списка, а затем добавив обратно. Затем подсказки исчезают, как и должны.


person paperduck    schedule 16.10.2017    source источник


Ответы (2)


Я опоздал на разговор, но я испытал что-то похожее на то, что выше сказал paperduck.

Я не могу на 100% доказать, но мой опыт показывает, что при тестировании на эмуляторе и собственном устройстве (Huawei P20 Lite), с установленным через Android Studio приложением, приложение говорит, что находится в списке Оптимизации. Добавление или удаление приложения из списка оптимизации не изменяет возвращаемое значение.

person Jarrod Lange    schedule 30.01.2020

Это может быть побочным эффектом (ошибкой) предыдущей установки APK на телефон вне Google Play. Мы загружаем и устанавливаем файлы APK-файлов-кандидатов на выпуск прямо с Google Диска. Эта проблема возникает на телефоне, на котором был установлен предыдущий файл APK. На телефоне, на котором не был установлен файл APK напрямую, проблема не возникает.

Мы не подтвердили это. Это наше подозрение.

person paperduck    schedule 19.10.2017