Как предотвратить полную яркость при появлении всплывающего окна с низким уровнем заряда батареи?

Всякий раз, когда на моем планшете появляется всплывающее окно « батарея разряжена », яркость становится полной. Это не имеет смысла, потому что яркость должна быть уменьшена до минимума, а не до максимума, так как батарея разряжена. Это также раздражает, так как я должен уменьшить яркость.

Я искал в настройках, чтобы отключить это, но не нашел такой опции.

Итак, как мне предотвратить увеличение яркости на 100% при появлении всплывающего окна с низким уровнем заряда батареи ?

Я использую Android Kitkat 4.4.2, и мой планшет не имеет root-прав.

Яркость установлена ​​на авто? И используете ли вы какое-либо приложение для улучшения заряда батареи?
@ Lucky «У вас установлена ​​​​автоматическая яркость? » - У моего планшета нет такой опции. Я держу его на минимуме. « Используете ли вы какое-либо приложение для улучшения заряда аккумулятора? » — Мой планшет поставлялся с «Lenovo Power Manager». Однако у него нет никаких параметров, связанных с яркостью. Так что я не думаю, что это виновник. Но теперь я нашел в этом приложении опцию «защитные очки» (уменьшает яркость экрана при включении), которая в настоящее время отключена. Я попробую это и посмотрю, может ли это предотвратить эту проблему. Подождите, пока разрядится батарея, чтобы попробовать...
Вы пробовали этот вариант «защитных очков»? Каков результат? Кроме того, у меня нет большой надежды на то, что яркость можно предотвратить без root-доступа (есть файл в разделе /sys), сброса настроек или системных настроек, которые, как вы сказали, не существуют. // В приложении Tasker есть действие, Display -> Brightnessкоторое может переопределить настройки, которым следует ваша система. Мне придется подождать 15% для тестирования в моей системе.
@Firelord Я заметил, что опция «защитные очки», когда она включена, предоставляет мне ползунок, который регулирует яркость. Когда яркость системы на минимуме и когда эта опция включена, ползунок находится на максимальном уровне, а яркость экрана снижается ниже минимальной будки, предусмотренной системой. Уменьшение ползунка при минимальной яркости системы еще больше снижает яркость! Но когда яркость системы на максимуме, а яркость опции на минимуме, яркость экрана низкая, но нижняя полоса имеет полную яркость.
@Firelord Нижняя панель — это панель, содержащая 3 кнопки «Назад», «Домой» и «Недавние приложения». Думаете дополнительная яркость бара повлияет на батарею? И о! Я не пробовал вариант «защитные очки», чтобы решить проблему, представленную в этом вопросе. Все еще жду, пока разрядится аккумулятор
@Firelord Хорошо. Я протестировал опцию «защитные очки», и она не сработала....
Извини! В этом случае у меня нет решений для нерутированных устройств.
@CoolGuy Очень интересный вопрос! У меня обратная проблема. Я хочу отключить внезапную полную яркость, когда батарея полностью заряжена: android.stackexchange.com/q/133382/9897 , потому что она меня будит.
@Masi Было бы полезно, если бы вы уменьшили объем, упомянув имя вашего устройства, текущую версию Android и / или имя ПЗУ. Например, расположение файла настройки максимальной яркости отличается в стандартных прошивках Android и Samsung.
@Firelord Samsung Galaxy S4, Android 5.0.1 леденец. Я купил Tasker, так что я тоже пытаюсь работать с ним. Мне нужно рутировать мой телефон, видимо.

Ответы (4)

Автоматизация является предпочтительным вариантом или, скорее, единственным вариантом в данном случае, поскольку ОС Android не предлагает никаких настроек для указанных требований.

Доступно множество приложений. Я предпочитаю использовать MacroDroid , так как он бесплатный (до 5 макросов) и прост в освоении.

MacroDroid создает и запускает макросы для автоматизации

Макрос состоит из следующего (доработка справки по приложению):

Вызывать

События, происходящие на устройстве (например, входящие SMS, вставленные наушники). Множественные триггеры оцениваются как логические (ИЛИ), что означает, что любое из условий триггера вызовет запуск макроса.

Действия

Действие, которое может выполнять устройство (например, установить обои, сделать снимок)

Ограничения

Ограничение, которое должно быть выполнено для срабатывания триггера (например, день недели, уровень заряда батареи). Множественные ограничения оцениваются как логические (И), что означает, что все ограничения должны быть удовлетворены для срабатывания триггера.

Примечания к предлагаемому решению

  1. Проверено на КитКат. Я не вижу проблем с более высокими версиями Android.

  2. Это не может «читаться», когда появляется индикация низкого уровня заряда батареи, но для этого макроса предполагается, что он составляет 15%. Вы можете посмотреть уровень заряда батареи в своем планшете и соответственно настроить макрос

  3. Не требует рута

  4. Это решение не касается объяснения системы Android высокой/низкой яркости и того, как они активируются.

Настройки системы

  1. Не делайте Greenify MacroDroid и исключайте его из тасккиллеров, если вы их используете.

  2. Включите MacroDroid в «Автоматическая защита» (телефоны Huawei) или «Режим выносливости» (телефоны Sony или «Power Nap» (модуль Stamina Mode Xposed для устройств, отличных от Sony). Кроме того, если в будущем вы обновитесь до Marshmallow, исключите MacroDroid из Doze. , См. это: есть ли способ исключить приложение из Doze?

Эти функции предотвращают активность приложений, когда устройство не находится в активном состоянии, что позволяет экономить заряд батареи. Может не иметь отношения к вашему телефону, но добавьте это в качестве общей меры предосторожности.

  1. Включите MacroDroid в настройках специальных возможностей, а также разрешите его в качестве администратора устройства в настройках безопасности.

  2. Для Lollipop включите доступ к уведомлениям в настройках уведомлений.


tl;dr: Ваш макрос будет выглядеть так

Триггер :

Уровень заряда батареиуменьшается до → (выберите процент по скользящей шкале или 15 %)

Действия :

  • Яркость0 ( выберите «По скользящей шкале» — не требует рута )
  • Подождать до следующего действия → установить на 10 секунд (рекомендуется разделить предыдущие и следующие действия, чтобы оба произошли)
  • Dim ScreenDimmer On → 10% ( выберите «По скользящей шкале» — не требует рута, если предыдущее действие недостаточно для вас — это сродни приложениям «экранного фильтра», таким как Darker )

Ограничения :

Нет (Макрос всегда запускается)


Тестирование макроса

Назовите и сохраните макрос и из трехкнопочного меню справа.

  • Тестовые действия: чтобы увидеть, как макрос ведет себя при каждом действии без ссылки на условия триггера/ограничения .

  • Тестовый макрос: чтобы увидеть, как макрос ведет себя так, как ожидалось (со ссылкой на триггер/действие/ограничения, то есть макрос в целом)

Поиск неисправностей

Макрос вообще не запускается . В большинстве случаев это происходит из-за того, что не применяются правильные системные настройки. Чтобы убедиться в этом, в разделе справки с тремя кнопками в главном интерфейсе приложения выберите « Системный журнал» и посмотрите, запускался ли ваш макрос при его запуске. Если имя вашего макроса не фигурирует, перепроверьте системные настройки.

Примечание: приведенное ниже решение требует, чтобы ваш Android был рутирован.


Я считаю, что автоматизация без рута не будет решать проблему напрямую, поскольку она ничего не меняет и не переопределяет, а делает что-то свое поверх существующих изменений. Я собирался опубликовать аналогичные строки, пока не понял, что ключом к решению является файл с именем max_brightness, файл под /sys, следовательно, часть ядра Linux и непосредственно им управляемая. Я обнаружил, что установка предела яркости в этом файле — лучший способ сделать это. Вы можете не согласиться с лучшим решением.

Я заметил, что после того, как ваша пользовательская максимальная яркость установлена, ни Android, ни приложение не могут установить яркость выше этого пользовательского уровня, если они не изменят содержимое этого файла, что часто у приложения нет причин для этого, и ни одно из них также не изменилось. Кроме того, файл принадлежит root и является частью группы root, поэтому любому приложению или даже system_server потребуются привилегии root для внесения изменений в этот файл.

Найти этот файл немного сложно. На моем устройстве MTK с Android 4.2 этот файл находится под расширением /sys/devices/platform/leds-mt65xx/leds/lcd-backlight/.

На моем устройстве Qualcomm с Android 5.0.2 и выше файл оказался в формате /sys/devices/mdp.0/qcom,mdss_fb_primary.168/leds/lcd-backlight/.

Я предполагаю, что лучший способ найти этот файл — запустить поисковый запрос (настройте для этого ), например:

(Требуется Busybox )

adb shell su -c 'find /sys/ -type f -iname "max_brightness"'

В моем устройстве Qualcomm вывод, который он дает:

/sys/devices/f9924000.i2c/i2c-2/2-0068/светодиоды/красный/max_brightness
/sys/devices/f9924000.i2c/i2c-2/2-0068/светодиоды/синий/max_brightness
/sys/devices/f9924000.i2c/i2c-2/2-0068/светодиоды/зеленый/max_brightness
/sys/devices/mdp.0/qcom,mdss_fb_primary.168/светодиоды/ЖК-подсветка /max_brightness
/sys/devices/qcom, камера-светодиодная-вспышка.81/светодиоды/фонарик/max_brightness
/sys/устройства/msm_sdcc.1/светодиоды/mmc0::/max_brightness
/sys/устройства/msm_sdcc.2/светодиоды/mmc1::/max_brightness
/sys/devices/01-qcom, светодиоды-d300/светодиоды/светодиоды:flash_torch/max_brightness
/sys/devices/01-qcom, светодиоды-d300/светодиоды/светодиоды: flash_0/max_brightness
/sys/devices/01-qcom, светодиоды-d300/светодиоды/светодиоды: flash_1/max_brightness
/sys/devices/01-qcom, светодиоды-e200/светодиоды/kpdbl-lut-2/max_brightness
/sys/devices/01-qcom, светодиоды-e200/светодиоды/kpdbl-pwm-3/max_brightness
/sys/devices/01-qcom, светодиоды-e200/светодиоды/kpdbl-pwm-4/max_brightness
/sys/devices/01-qcom, светодиоды-e200/светодиоды/подсветка кнопок/max_brightness

Место, где lcd-backlightупоминается, было единственным, которое имело для меня смысл, и именно так я нашел файл на своем устройстве. Не беспокойтесь, спрашивая о других. Я попытался изменить яркость экрана и искал изменения в названном файле brightness(также расположенном в указанных местах). Ни один из них не отражал правильный вывод, кроме того, что в /sys/devices/mdp.0/qcom,mdss_fb_primary.168/leds/lcd-backlight.

Только для демонстрации, попробуйте установить ограничение вmax_brightness

adb shell su -c 'echo LIMIT > PATH_TO_MAX_BRIGHTNESS'   # in my case PATH_TO_MAX_BRIGHTNESS is /sys/devices/mdp.0/qcom,mdss_fb_primary.168/leds/lcd-backlight/ and set LIMIT to a value less than 30 (not limited to). 

Теперь попробуйте увеличить яркость с помощью ползунка яркости или стороннего приложения, и вы заметите, что яркость вашего экрана не превышает определенной точки, даже если ползунок или конфигурация приложения кажутся максимальными. Яркость для этой «определенной точки» наверняка будет меньше той, к которой вы привыкли по умолчанию.

Обратите внимание , что максимальное значение max_brightness часто равно 255, а яркость находится в диапазоне от 0 до 255. Часто, не всегда правда, т.е. И не бойтесь установить ограничение на 0. Это приведет к тому, что экран не загорится, пока вы не отмените изменения или не перезапустите устройство.

Найдите предел, который не будет мешать вам спать или сильно разряжать батарею, когда батарея разряжается.


Автоматизация

Для используйте любое приложение автоматизации, которое может запускать команду с привилегиями root и при соблюдении контекста предпочитаемого вами триггера. Я рекомендую триггер на основе времени.

Некоторые рабочие примеры:

  • В Tasker настройте профиль с предпочитаемым контекстом, создайте задачу и используйте действие: Код → Запустить оболочку:

    • Команда:echo LIMIT > PATH_TO_MAX_BRIGHTNESS
    • отметьте Использовать рут
  • В MacroDroid настройте предпочитаемый триггер и для действия установите Secure Settings , выберите его → Действия → Выполнить команду:

    • Команда:echo LIMIT > PATH_TO_MAX_BRIGHTNESS
    • отметьте Использовать рут
  • В Automate , как часть вашего потока, при настройке действия для вашего триггера выберите команду Shell superuser в разделе «Приложения» и выполните:

    • Командная строка:echo LIMIT > PATH_TO_MAX_BRIGHTNESS


    Обязательно установите все разрешения, необходимые для потока.

  • В DroidAutomation настройте свой триггер и под задачей выберите Root → Выполнить командную строку и введите:echo LIMIT > PATH_TO_MAX_BRIGHTNESS

Как вы уже догадались, вам придется настроить два профиля для каждого приложения. Один для установки предела, а другой для установки максимальной яркости по умолчанию, к которой вы привыкли.

Явные триггеры низкого заряда батареи:

  • Таскер

    • Состояние → Уровень заряда батареи → установить диапазон
    • Альтернатива: Событие → Система → Намерение получено → оставьте все нетронутым, но установите действие на android.intent.action.BATTERY_LOW.
  • макродроид

    Следуйте ответу Бишаймса, чтобы настроить триггер

  • Автоматизировать

    Перейдите в «Приложения» → «Прием трансляций» → оставьте все нетронутым, но выберите «Батарея разряжена» в «Действии».

  • Автоматизация дроидов

    Выберите «Низкий заряд батареи» в разделе «Добавить триггер».


Я хотел бы, чтобы вы учитывали , что использование триггера низкого заряда батареи или 100% батареи помешает цели этого ответа, которая состоит в том, чтобы отменить изменения, которые Android хочет внести. Например, если вы устанавливаете LIMIT на 0 всякий раз, когда батарея достигает 100%, что произойдет, если ваш Android будет освещать экран до максимума, как обычно, и через несколько миллисекунд (вы правильно прочитали) ваше приложение автоматизации запустится и установит предел. Ваш сон может быть прерван в эти миллисекунды.

В другой ситуации, когда система сообщает о низком уровне заряда батареи, планшет Крутого Парня может оказаться с максимально освещенным экраном, и через несколько миллисекунд яркость упадет до LIMIT.

Обходной путь заключается в том, чтобы установить уровень заряда батареи на 16 или более для триггера низкого заряда батареи и 99 или менее для полного заряда батареи.

Не поняли преимущества триггера, основанного на времени, не могли бы вы уточнить? -Кажется, я заблудился, пытаясь понять системные вещи в вашем решении :)
Моя рекомендация по запуску по времени не требует дополнительного запуска для «низкого заряда батареи» или «заряда батареи 100 %». Я предполагаю, что независимо от уровня зарядки в течение определенного периода OP всегда будет спать, так зачем вообще беспокоиться об уровне зарядки. Просто убедитесь, что система никогда не прерывает сон OP высокой яркостью, несмотря ни на что (вы можете настроить специальные условия, например, если в это время придет вызов, восстановить яркость). На самом деле, это только рекомендация, ничего обязательного. Части моего решения очень независимы.

Попробуйте использовать приложение под названием Screen filter. ВНИМАНИЕ: Не устанавливайте яркость ниже 17, потому что вы ничего не видите. Вы можете написать на ночь, и человек, сидящий рядом с вами, даже не увидит

Отказ от ответственности: не тестировалось на Lollipop, так как мое устройство НЕ на Lollipop, мое устройство не делает экран ярче при полной зарядке. Попросит пользователей OP или Samsung S4 galaxy подтвердить. Теоретически должно работать

Firelord в своем решении подчеркнул тот момент, что мое предыдущее решение влечет за собой то, что экран загорается на миллисекунды , что может вызвать нарушение работы OP. Однако его метод включает в себя рутирование и идентификацию файла для изменения максимальных уровней яркости.

ИМО, этому подходу не хватает универсальности, поскольку он применим к тем, у кого есть root-права и есть понимание, как идентифицировать файл для изменения уровней яркости (помимо технических достоинств). Следовательно, я представляю альтернативное решение, которое дает аналогичные результаты, но без рутирования .

Это включает в себя использование приложения для фильтрации экрана Darker . Это доступно в бесплатной версии (которая может уменьшить яркость до 20%) и версии Pro (которая может уменьшить яркость ниже 20%, вплоть до нулевой яркости). Описание приложения, соответствующее здесь, говорит

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

Логика макроса:

  • Активируйте приложение Darker всякий раз, когда подключается питание для зарядки, чтобы уменьшить яркость экрана до комфортного уровня.
  • Когда зарядное устройство отключается вручную при пробуждении, нажмите кнопку остановки приложения, чтобы вернуться к нормальной яркости (из панели уведомлений).

  • Если есть необходимость ответить на звонок или текстовое сообщение, либо вручную сделайте вышеописанное, либо добавьте как ограничение в макросе

Ваш макрос будет выглядеть так

Триггер :

*Питание подключено/отключено → подключено

Действия :

  • Запустить приложениеТемнееСохранить существующий (ранее Darker был настроен на комфортный уровень затемнения, и эта опция выбирает его)

Ограничения :

Нет (Макрос всегда запускается)

Примечание

  • Приложение Darker работает, когда идет зарядка. Это компромисс в отсутствии рутирования устройства
  • Обратитесь к более раннему решению для получения информации, связанной с MacroDroid.
  • На рисунке ниже показано уменьшение яркости экрана с помощью приложения Darker. Крайняя левая панель без использования приложения Darker, но с минимальным уровнем яркости экрана. В середине используется Darker (бесплатная версия), поддерживающая яркость экрана на уровне 20%, а последний использует приложение версии Pro с яркостью 10%.

Нажмите, чтобы увеличить