Nota: la soluzione seguente richiede il root del tuo Android.
Credo che l'automazione senza root non affronterebbe direttamente il problema, dal momento che non sta cambiando o ignorando nulla, ma facendo le proprie cose sulle modifiche esistenti. Stavo per pubblicare su linee simili fino a quando mi sono reso conto che la chiave della soluzione è un file chiamato max_brightness
, un file sotto /sys
, quindi una parte del kernel Linux e gestito direttamente da esso. Ho scoperto che l'impostazione del limite di luminosità in quel file è il modo migliore per andare qui. Potresti non essere d'accordo con una soluzione migliore.
Ho notato che una volta impostata la massima luminosità personalizzata, né Android né un'app erano in grado di impostare la luminosità oltre quel livello personalizzato a meno che non modificassero il contenuto di quel file, a cui spesso un'app non ha motivo e nessuna di esse è cambiata. Inoltre, il file è di proprietà di root e fa parte del gruppo root, quindi qualsiasi app o addirittura system_server richiederebbe il privilegio di root per apportare modifiche a quel file.
Trovare quel file è un po 'complicato. Nel mio dispositivo MTK con Android 4.2, quel file sembra essere sotto /sys/devices/platform/leds-mt65xx/leds/lcd-backlight/
.
Nel mio dispositivo Qualcomm con Android 5.0.2 e versioni successive, il file sembrava essere in /sys/devices/mdp.0/qcom,mdss_fb_primary.168/leds/lcd-backlight/
.
Presumo che il modo migliore per trovare quel file sia eseguire una query di ricerca (setup adb per quello), come ad esempio:
(Richiede busybox )
adb shell su -c 'find /sys/ -type f -iname "max_brightness"'
Nel mio dispositivo Qualcomm, l'output che fornisce è:
/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 / LED / led: flash_torch / max_brightness
/ Sys / devices / 01-QCOM, leds-D300 / LED / led: flash_0 / max_brightness
/ Sys / devices / 01-QCOM, leds-D300 / LED / led: flash_1 / max_brightness
/ sys / dispositivi / 01-QCOM, leds-e200 / LED / kpdbl-LUT-2 / max_brightness
/ sys / dispositivi / 01-QCOM, leds-e200 / LED / kpdbl-PWM-3 / max_brightness
/ sys / dispositivi / 01-QCOM, leds-e200 / LED / kpdbl-PWM-4 / max_brightness
/ Sys / devices / 01-QCOM, leds-e200 / LED / pulsante retroilluminazione / max_brightness
La posizione in cui lcd-backlight
è stato menzionato è stata l'unica che aveva senso per me ed è così che ho trovato il file nel mio dispositivo. Non preoccuparti di chiedere agli altri. Ho provato a cambiare la luminosità dello schermo e ho cercato le modifiche nel file chiamato brightness
(che si trova anche sotto quelle posizioni dette). Nessuno di essi rifletteva l'output corretto diverso da quello a /sys/devices/mdp.0/qcom,mdss_fb_primary.168/leds/lcd-backlight
.
Solo per dimostrazione, prova a impostare un limite in 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).
Ora prova a massimizzare la luminosità utilizzando il dispositivo di scorrimento della luminosità o un'app di terze parti e noterai che la luminosità dello schermo non supera oltre un certo punto anche quando il dispositivo di scorrimento o la configurazione dell'app sembrano essere al massimo. La luminosità per quel "certo punto" sarebbe sicuramente inferiore a quella predefinita a cui sei abituato.
Si noti che il valore massimo in max_brightness si trova spesso a 255 e la luminosità varia da 0 a 255. Spesso, non sempre vero, cioè. E non temere di impostare il limite su 0. Ciò farebbe sì che lo schermo non si accenda fino a quando non si ripristinano le modifiche o si riavvia il dispositivo.
Trova un limite che non ti disturbi nel sonno o scarica la batteria pesantemente quando la batteria si sta esaurendo.
Automazione
Per automazione, utilizzare qualsiasi app di automazione in grado di eseguire un comando con privilegio di root e quando viene soddisfatto il contesto del trigger preferito. Raccomando un trigger basato sul tempo.
Alcuni esempi funzionanti:
In Tasker , imposta un profilo con il tuo contesto preferito, crea un'attività e usa l'azione: Codice → Esegui shell:
- Comando:
echo LIMIT > PATH_TO_MAX_BRIGHTNESS
- seleziona Usa radice
In MacroDroid , imposta il tuo trigger preferito e per l'azione installa Impostazioni sicure , selezionalo → Azioni → Esegui comando:
- Comando:
echo LIMIT > PATH_TO_MAX_BRIGHTNESS
- seleziona Usa radice
In Automatizza , come parte del flusso, quando si imposta un'azione per il trigger, selezionare il superutente del comando Shell in App ed eseguire:
- Riga di comando:
echo LIMIT > PATH_TO_MAX_BRIGHTNESS
Assicurarsi di installare tutte le autorizzazioni richieste dal flusso.
In DroidAutomation , imposta il trigger e, sotto l'attività, seleziona Radice → Esegui una riga di comando e digita:echo LIMIT > PATH_TO_MAX_BRIGHTNESS
Come avresti immaginato, dovresti configurare due profili per ogni app. Uno per impostare un limite e l'altro per impostare la luminosità massima sul valore predefinito a cui sei abituato.
Trigger espliciti di batteria scarica:
Tasker
- Stato → Livello batteria → imposta l'intervallo
- Alternativa: Evento → Sistema → Intento ricevuto → lascia tutto intatto ma imposta l'azione su
android.intent.action.BATTERY_LOW
.
MacroDroid
Segui la risposta delle api per configurare il grilletto
Automatizzare
Vai su App → Ricezione trasmissione → lascia tutto intatto ma seleziona Batteria scarica in Azione
Droid Automation
Seleziona Batteria scarica da Aggiungi un trigger
Vorrei che lo tenessi presente che l'uso di una batteria scarica o di un trigger della batteria al 100% vanificherebbe lo scopo di questa risposta, che è quello di ignorare le modifiche che Android vuole apportare. Ad esempio, se imposti LIMIT su 0 ogni volta che la batteria raggiunge il 100%, ciò che accadrebbe è che il tuo Android illuminerebbe lo schermo al massimo come al solito e in pochi millisecondi (leggi correttamente) la tua app di automazione funzionerebbe e imposterebbe il limite. Il tuo sonno potrebbe interrompersi in quei millisecondi.
In un'altra situazione, quando l'intento di batteria scarica viene trasmesso dal sistema, il tablet di Cool Guy potrebbe finire con uno schermo illuminato al massimo e in pochi millisecondi, la luminosità tornerebbe a LIMIT.
La soluzione alternativa consiste nell'impostare il livello della batteria su 16 o più per il trigger di batteria scarica e 99 o meno per la carica completa della batteria.