2 votes

Comment empêcher la luminosité lorsque la batterie atteint un niveau élevé ?

Je laisse mon téléphone (Samsung Galaxy 4 GT-I9506, Android 5.0.1 lollipop) en charge sur ma table quand je vais me coucher. Il atteint le plein après quelques heures souvent. C'est tellement ennuyeux quand l'écran devient lumineux après que la batterie soit pleine, ce qui me réveille.

Je connais le fil Comment empêcher la luminosité de passer au maximum lorsque la fenêtre contextuelle de batterie faible apparaît ? sur la prévention de l'affichage lumineux lorsque la batterie est faible. L'appareil rooté semble être le seul choix pour changer le comportement par défaut. J'ai installé sans succès CyanogenMod dans l'appareil plusieurs fois. Je suis ouvert à d'autres façons de Rooter ce dispositif et de changer son comportement par défaut.

Réglages > Affichage ne comporte aucune fonction permettant de modifier le mode de luminosité. Ce serait génial de pouvoir personnaliser la luminosité dans différents modes, etc lorsque la batterie est faible. Dans le lien, l'utilisateur ne voulait pas consommer de la batterie supplémentaire avec l'affichage lorsque la batterie était extrêmement faible.

J'ai installé Firelord proposé, Tasker, où je travaille l'automatisation. J'ai probablement besoin de Root mon téléphone pour un changement suffisant.


Comment empêcher la luminosité lorsque la batterie est pleine dans Android ?

4voto

Firelord Points 23064

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.

2voto

beeshyams Points 37355

Comme suggéré par @Firelord, vous pouvez essayer avec tasker ou utiliser MacroDroid.

L'automatisation est la meilleure option, ou plutôt la seule option dans ce cas. De nombreuses applications sont disponibles. Je préfère utiliser MacroDroid Il est gratuit (jusqu'à 5 macros) et facile à apprendre. Pour comprendre le fonctionnement de MacroDroid et l'utilisation de la fonction paramètres requis pour votre version d'Android, consultez mon respuesta

Note Ceci n'a pas été testé sur Lollipop car je suis sur KitKat mais devrait fonctionner. Assurez-vous que les paramètres appropriés pour Lollipop sont faits

Votre macro ressemblerait à ceci

Déclencheur :

Niveau de la batteriepasse à → (choisissez le pourcentage que vous préférez sur une échelle mobile ou 100 %).

Actions :

  • Luminosité0 ( Choisissez l'échelle mobile - ne nécessite pas de racine. )
  • Attendre avant l'action suivante → définir à 10 secondes (recommandé pour séparer les actions précédentes et suivantes en s'assurant que les deux se produisent).
  • Écran réduitDimmer On → 10% ( Choisissez l'échelle mobile - ne nécessite pas de racine, si l'action précédente n'est pas assez bonne pour vous. - cela s'apparente à des applications de "filtrage d'écran" telles que Plus sombre )

Contraintes :

Heure de la journéeHeure de début 2200 → Fin du temps 0600 (en supposant que c'est votre heure de sommeil)

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X