Vous pouvez vous en approcher, mais vous ne pouvez pas empêcher ce comportement, à moins qu'il n'existe un paramètre que vous ignorez ou que l'appareil soit enraciné. Peu importe ce que automatisation Si l'on utilise l'appareil, la luminosité est réglée au maximum dès que le niveau de la batterie atteint 100 % et en quelques millisecondes, elle revient à ce que l'on veut. Ma solution résout ce problème. Posté à l'origine aquí .
Le fichier nommé max_brightness
un dossier sous /sys
qui fait donc partie du noyau Linux et est directement géré par lui, semble être la clé de la solution. J'ai constaté que la définition de la limite de luminosité dans ce fichier est l'une des meilleures façons de résoudre le problème.
J'ai remarqué qu'une fois que votre luminosité maximale personnalisée est définie, ni Android ni une application n'est en mesure de définir la luminosité au-delà de ce niveau personnalisé, à moins qu'ils ne modifient le contenu de ce fichier, ce que souvent une application n'a aucune raison de faire et qu'aucune d'entre elles n'a modifié non plus. De plus, le fichier appartient à Root et fait partie du groupe Root, donc n'importe quelle application ou même system_server aurait besoin du privilège Root pour apporter des modifications à ce fichier.
Trouver ce fichier est un peu difficile. Dans mon appareil MTK avec Android 4.2, ce fichier semble se trouver sous /sys/devices/platform/leds-mt65xx/leds/lcd-backlight/
.
Sur mon appareil Qualcomm équipé d'Android 5.0.2 et des versions ultérieures, le fichier semble être dans le répertoire /sys/devices/mdp.0/qcom,mdss_fb_primary.168/leds/lcd-backlight/
.
Je suppose que la meilleure façon de trouver ce fichier est de lancer une requête de recherche (setup adb pour cela), comme :
(Exigeant <a href="https://play.google.com/store/apps/details?id=stericson.busybox" rel="nofollow noreferrer">busybox </a>)
adb shell su -c 'find /sys/ -type f -iname "max_brightness"'
Dans mon appareil Qualcomm, la sortie qu'il donne est la suivante :
/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/button-backlight/max\_brightness
L'endroit où lcd-backlight
est mentionné était le seul qui avait un sens pour moi et c'est ainsi que j'ai trouvé le fichier dans mon appareil. Ne vous inquiétez pas de demander pour les autres. J'ai essayé de changer la luminosité de l'écran et j'ai cherché les changements dans le fichier nommé brightness
(également situé sous ces mêmes emplacements). Aucun d'entre eux ne reflète la sortie correcte, à l'exception de celui situé à /sys/devices/mdp.0/qcom,mdss_fb_primary.168/leds/lcd-backlight
.
Seulement pour la démonstration, essayez de fixer une limite dans 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).
Essayez maintenant de maximiser la luminosité en utilisant le curseur de luminosité ou une application tierce et vous remarquerez que la luminosité de votre écran ne dépasse pas un certain point même si le curseur ou la configuration de l'application semble être au maximum. La luminosité pour ce "certain point" sera certainement inférieure à la luminosité par défaut à laquelle vous êtes habitué.
Note que la valeur maximale dans max_brightness se trouve souvent être 255 et que la luminosité va de 0 à 255. C'est souvent, mais pas toujours vrai. Et Vous ne pouvez pas craindre que la limite soit fixée à 0, car l'écran ne s'allumerait pas tant que vous n'auriez pas annulé les modifications ou redémarré l'appareil.
Trouvez une limite qui ne vous dérange pas dans votre sommeil.
Automatisation
Pour automatisation Dans le cas d'une application d'automatisation, utilisez n'importe quelle application d'automatisation qui peut exécuter une commande avec le privilège Root et lorsque le contexte de votre déclencheur préféré est satisfait. Je recommande un déclencheur basé sur le temps.
Quelques exemples concrets :
-
En Tasker , configurez un profil avec votre contexte préféré, créez une tâche et utilisez l'action : Code → Exécuter le shell :
- Commandement :
echo LIMIT > PATH_TO_MAX_BRIGHTNESS
- check Use Root
-
En MacroDroid Pour l'installation de la gâchette et de l'action Paramètres sécurisés choisissez-le → Actions → Exécuter la commande :
- Commandement :
echo LIMIT > PATH_TO_MAX_BRIGHTNESS
- check Use Root
-
En Automatiser Dans le cadre de votre flux, lorsque vous définissez une action pour votre déclencheur, sélectionnez Commande shell superuser sous Apps et do :
- Ligne de commande :
echo LIMIT > PATH_TO_MAX_BRIGHTNESS
Assurez-vous d'installer toutes les permissions requises par le flux.
-
En DroidAutomation , configurez votre déclencheur et sous la tâche, sélectionnez Racine → Exécuter une ligne de commande et tapez : echo LIMIT > PATH_TO_MAX_BRIGHTNESS
Comme vous l'auriez deviné, vous devez configurer deux profils pour chaque application. L'un pour définir une limite et l'autre pour régler la luminosité maximale sur la valeur par défaut à laquelle vous êtes habitué.
Je voudrais que vous garder cela à l'esprit (même si vous avez eu un indice au début) que l'utilisation d'un déclencheur à 100% de la batterie irait à l'encontre du but de cette réponse, qui est d'annuler les changements qu'Android veut faire. Par exemple, si vous définissez LIMIT à 0 chaque fois que la batterie atteint 100%, ce qui se passerait, c'est que votre Android éclairerait l'écran au maximum comme d'habitude et en quelques millisecondes (vous avez bien lu) votre application d'automatisation s'exécuterait et définirait la limite. Votre sommeil pourrait être interrompu pendant ces millisecondes.
La solution de contournement consiste à régler le niveau de la batterie sur 99 ou moins pour une charge complète de la batterie.
Cela dit, je ne serais pas surpris que vous évitiez l'enracinement, étant donné que le plus grand compromis que vous feriez en utilisant une réponse avec une approche non-enracinement est de ne pas comptabiliser ces pesantes mais seulement millisecondes.