Nota: a solução abaixo requer que o seu Android esteja enraizado.
Acredito que a automação sem raiz não lidaria diretamente com o problema, pois não está alterando ou substituindo nada, mas fazendo suas próprias coisas em relação às alterações existentes. Eu estava prestes a postar em linhas semelhantes até perceber que a chave da solução é um arquivo chamado max_brightness
, um arquivo abaixo /sys
, portanto, parte do kernel do Linux e gerenciado diretamente por ele. Descobri que definir o limite de brilho nesse arquivo é o melhor caminho a percorrer aqui. Você pode discordar de uma solução melhor.
Percebi que, uma vez que seu brilho máximo personalizado é definido, nem o Android nem um aplicativo conseguem definir o brilho além desse nível personalizado, a menos que eles alterem o conteúdo desse arquivo, o que muitas vezes um aplicativo não tem razão e nenhum deles também mudou. Além disso, o arquivo pertence à raiz e faz parte da raiz do grupo; portanto, qualquer aplicativo ou mesmo system_server exigiria privilégios de root para fazer alterações nesse arquivo.
Encontrar esse arquivo é um pouco complicado. No meu dispositivo MTK com Android 4.2, esse arquivo parece estar abaixo /sys/devices/platform/leds-mt65xx/leds/lcd-backlight/
.
Em meu dispositivo Qualcomm com Android 5.0.2 e acima, o arquivo parecia estar em /sys/devices/mdp.0/qcom,mdss_fb_primary.168/leds/lcd-backlight/
.
Suponho que a melhor maneira de encontrar esse arquivo seja executar uma consulta de pesquisa (configuração adb para isso), como:
(Requer ocupado )
adb shell su -c 'find /sys/ -type f -iname "max_brightness"'
No meu dispositivo Qualcomm, a saída é:
/sys/devices/f9924000.i2c/i2c-2/2-0068/leds/red/max_brightness
/sys/devices/f9924000.i2c/i2c-2/2-0068/leds/blue/max_brightness
/sys/devices/f9924000.i2c/i2c-2/2-0068/leds/green/max_brightness
/sys/devices/mdp.0/qcom,mdss_fb_primary.168/leds/lcd-backlight / max_brightness
/sys/devices/qcom,camera-led-flash.81/leds/torch-light/max_brightness
/sys/devices/msm_sdcc.1/leds/mmc0::/max_brightness
/sys/devices/msm_sdcc.2/leds/mmc1::/max_brightness
/ sys / devices / 01-qcom, leds-d300 / leds / led: flash_torch / max_brightness
/ sys / devices / 01-qcom, leds-d300 / leds / led: flash_0 / max_brightness
/ sys / devices / 01-qcom, leds-d300 / leds / led: flash_1 / max_brightness
/ sys / devices / 01-qcom, leds-e200 / leds / kpdbl-lut-2 / max_brightness
/ sys / devices / 01-qcom, leds-e200 / leds / kpdbl-pwm-3 / max_brightness
/ sys / devices / 01-qcom, leds-e200 / leds / kpdbl-pwm-4 / max_brightness
/ sys / devices / 01-qcom, leds-e200 / leds / luz de fundo de botão / max_brightness
O local lcd-backlight
mencionado é o único que fazia sentido para mim e foi assim que encontrei o arquivo no meu dispositivo. Não se preocupe em perguntar sobre os outros. Tentei alterar o brilho da tela e procurei as alterações no arquivo chamado brightness
(também localizado nesses locais). Nenhum deles refletiu a saída correta, exceto a que está em /sys/devices/mdp.0/qcom,mdss_fb_primary.168/leds/lcd-backlight
.
Somente para demonstração, tente definir um limite em 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).
Agora tente maximizar o brilho usando o controle deslizante de brilho ou um aplicativo de terceiros e você perceberá que o brilho da tela não excede um certo ponto, mesmo quando o controle deslizante ou a configuração do aplicativo parecem estar no máximo. O brilho para esse "determinado ponto" certamente seria menor do que o padrão com o qual você está acostumado.
Observe que o valor máximo em max_brightness geralmente é 255 e o brilho varia de 0 a 255. Frequentemente, nem sempre é verdade. E não tenha medo de definir o limite como 0. Isso faria com que a tela não acendesse até você reverter as alterações ou reiniciar o dispositivo.
Encontre um limite que não o atrapalhe durante o sono ou gaste muito a bateria quando a bateria estiver com pouco suco.
Automação
Para automação, use qualquer aplicativo de automação que possa executar um comando com privilégios de root e quando o contexto do seu gatilho preferido for atendido. Eu recomendo um gatilho baseado em tempo.
Alguns exemplos de trabalho:
No Tasker , configure um perfil com o seu contexto preferido, crie uma tarefa e use a ação: Código → Executar Shell:
- Comando:
echo LIMIT > PATH_TO_MAX_BRIGHTNESS
- marque Usar raiz
No MacroDroid , configure seu gatilho preferido e, para ação, instale Configurações seguras , escolha → Ações → Executar comando:
- Comando:
echo LIMIT > PATH_TO_MAX_BRIGHTNESS
- marque Usar raiz
Em Automatizar , como parte do seu fluxo, ao configurar uma ação para seu acionador, selecione Superusuário do comando Shell em Aplicativos e faça:
- Linha de comando:
echo LIMIT > PATH_TO_MAX_BRIGHTNESS
Certifique-se de instalar todas as permissões exigidas pelo fluxo.
No DroidAutomation , configure seu gatilho e, na tarefa, selecione Raiz → Executar uma linha de comando e digite:echo LIMIT > PATH_TO_MAX_BRIGHTNESS
Como você imaginou, teria que configurar dois perfis para cada aplicativo. Um para configurar um limite e o outro para definir o brilho máximo para o padrão com o qual você está acostumado.
Acionadores explícitos de bateria fraca:
Tasker
- Estado → Nível da bateria → defina o intervalo
- Alternativa: Evento → Sistema → Intenção recebida → deixa tudo intocado, mas defina a Ação como
android.intent.action.BATTERY_LOW
.
MacroDroid
Siga a resposta dos beeshayms para configurar o gatilho
Automatizar
Vá para Aplicativos → Recebimento de transmissão → deixe tudo intocado, mas selecione Bateria fraca em Ação
Droid Automation
Selecione Bateria fraca em Adicionar um gatilho
Gostaria que você levasse isso em consideração, pois o uso de uma bateria fraca ou de um acionador de bateria de 100% anularia o objetivo desta resposta, que é substituir as alterações que o Android deseja fazer. Por exemplo, se você configurar LIMIT como 0 sempre que a bateria atingir 100%, o que aconteceria é que o seu Android acendesse a tela no máximo como de costume e em alguns milissegundos (você leu corretamente) seu aplicativo de automação executaria e definiria o limite. Seu sono pode ser interrompido nesses milissegundos.
Em outra situação, quando a intenção de bateria fraca é transmitida pelo sistema, o tablet da Cool Guy pode acabar com uma tela acesa no máximo e, em poucos milissegundos, o brilho volta a LIMIT.
A solução alternativa é configurar o nível da bateria para 16 ou mais para o gatilho de bateria fraca e 99 ou menos para a carga total da bateria.