Hinweis: Für die folgende Lösung muss Ihr Android-Gerät gerootet sein.
Ich glaube, dass die Automatisierung ohne Root das Problem nicht direkt lösen würde, da sie nichts ändert oder überschreibt, sondern ihre eigenen Dinge über die vorhandenen Änderungen hinweg tut. Ich wollte gerade in ähnlichen Zeilen posten, bis mir klar wurde, dass der Schlüssel zur Lösung eine Datei mit dem Namen ist max_brightness
, eine Datei unter /sys
, daher Teil des Linux-Kernels und direkt von diesem verwaltet. Ich fand, dass das Festlegen der Helligkeitsgrenze in dieser Datei der beste Weg ist, um hierher zu gelangen. Sie können mit einer besseren Lösung nicht einverstanden sein.
Ich habe festgestellt, dass weder Android noch eine App nach dem Festlegen Ihrer benutzerdefinierten maximalen Helligkeit die Helligkeit über diese benutzerdefinierte Stufe hinaus einstellen konnten, es sei denn, sie haben den Inhalt dieser Datei geändert, für die eine App häufig keinen Grund hat und auch keine. Außerdem gehört die Datei root und ist Teil des Gruppenstamms, sodass für jede App oder sogar für system_server Root-Berechtigungen erforderlich sind, um Änderungen an dieser Datei vorzunehmen.
Das Finden dieser Datei ist etwas schwierig. Auf meinem MTK-Gerät mit Android 4.2 scheint sich diese Datei unter zu befinden /sys/devices/platform/leds-mt65xx/leds/lcd-backlight/
.
Auf meinem Qualcomm-Gerät mit Android 5.0.2 und höher schien sich die Datei in zu befinden /sys/devices/mdp.0/qcom,mdss_fb_primary.168/leds/lcd-backlight/
.
Ich gehe davon aus, dass der beste Weg, diese Datei zu finden, darin besteht, eine Suchabfrage auszuführen (Setup- ADB dafür), wie zum Beispiel:
(Benötigt Busybox )
adb shell su -c 'find /sys/ -type f -iname "max_brightness"'
In meinem Qualcomm-Gerät wird folgende Ausgabe ausgegeben:
/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 / device / 01-qcom, leds-d300 / leds / led: flash_torch / max_brightness
/ sys / device / 01-qcom, leds-d300 / leds / led: flash_0 / max_brightness
/ sys / device / 01-qcom, leds-d300 / leds / led: flash_1 / max_brightness
/ sys / device / 01-qcom, leds-e200 / leds / kpdbl-lut-2 / max_brightness
/ sys / device / 01-qcom, leds-e200 / leds / kpdbl-pwm-3 / max_brightness
/ sys / device / 01-qcom, leds-e200 / leds / kpdbl-pwm-4 / max_brightness
/ sys / device / 01-qcom, leds-e200 / leds / button-backlight / max_brightness
Der Ort, an dem lcd-backlight
erwähnt wird, war der einzige, der für mich Sinn machte, und so fand ich die Datei auf meinem Gerät. Mach dir keine Sorgen, nach anderen zu fragen. Ich habe versucht, die Helligkeit des Bildschirms zu ändern, und nach den Änderungen in der genannten Datei gesucht brightness
(die sich ebenfalls unter diesen Speicherorten befindet). Keiner von ihnen spiegelte die richtige Ausgabe wider, außer der bei /sys/devices/mdp.0/qcom,mdss_fb_primary.168/leds/lcd-backlight
.
Versuchen Sie nur zur Demonstration, ein Limit in festzulegen 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).
Versuchen Sie nun, die Helligkeit mithilfe des Helligkeitsreglers oder einer Drittanbieter-App zu maximieren, und Sie werden feststellen, dass die Helligkeit Ihres Bildschirms einen bestimmten Punkt nicht überschreitet, selbst wenn der Schieberegler oder die Konfiguration der App maximal zu sein scheinen. Die Helligkeit für diesen "bestimmten Punkt" wäre sicherlich geringer als die Standardhelligkeit, die Sie gewohnt sind.
Beachten Sie, dass der Maximalwert in max_brightness häufig 255 beträgt und die Helligkeit zwischen 0 und 255 liegt. Oft nicht immer wahr. Und befürchten Sie nicht, das Limit auf 0 zu setzen. Dies würde dazu führen, dass der Bildschirm nicht leuchtet, bis Sie die Änderungen rückgängig machen oder das Gerät neu starten.
Finden Sie eine Grenze, die Sie im Schlaf nicht stören oder die Batterie stark entladen würde, wenn die Batterie fast leer ist.
Automatisierung
Verwenden Sie für die Automatisierung eine beliebige Automatisierungs-App, die einen Befehl mit Root-Rechten ausführen kann und wenn der Kontext Ihres bevorzugten Triggers erfüllt ist. Ich empfehle einen zeitbasierten Trigger.
Einige Arbeitsbeispiele:
Richten Sie in Tasker ein Profil mit Ihrem bevorzugten Kontext ein, erstellen Sie eine Aufgabe und verwenden Sie die folgende Aktion: Code → Shell ausführen:
- Befehl:
echo LIMIT > PATH_TO_MAX_BRIGHTNESS
- Aktivieren Sie Root verwenden
Richten Sie in MacroDroid Ihren bevorzugten Auslöser ein und wählen Sie für die Installation der sicheren Einstellungen die Option → Aktionen → Befehl ausführen :
- Befehl:
echo LIMIT > PATH_TO_MAX_BRIGHTNESS
- Aktivieren Sie Root verwenden
In Automate , als Teil der Strömung, wenn eine Aktion für den Trigger einzurichten, wählen Sie Shell - Befehl Super - User unter Apps und tun:
- Befehlszeile:
echo LIMIT > PATH_TO_MAX_BRIGHTNESS
Stellen Sie sicher, dass Sie alle für den Flow erforderlichen Berechtigungen installieren.
Richten Sie in DroidAutomation Ihren Trigger ein und wählen Sie unter Aufgabe Root → Befehlszeile ausführen und geben Sie Folgendes ein:echo LIMIT > PATH_TO_MAX_BRIGHTNESS
Wie Sie vermutet haben, müssten Sie für jede App zwei Profile einrichten. Eine, um ein Limit festzulegen, und die andere, um die maximale Helligkeit auf den gewohnten Standardwert einzustellen.
Explizite Auslöser für niedrigen Batteriestand:
Tasker
- Status → Batteriestand → Bereich einstellen
- Alternative: Ereignis → System → Empfangene Absicht → Lassen Sie alles unberührt, aber setzen Sie die Aktion auf
android.intent.action.BATTERY_LOW
.
MacroDroid
Folgen Sie der Antwort von beeshayms, um den Trigger einzurichten
Automatisieren
Gehen Sie zu Apps → Broadcast Receive → Lassen Sie alles unberührt, wählen Sie jedoch Battery Low in Action
Droidenautomatisierung
Wählen Sie Batterie hinzufügen unter Trigger hinzufügen
Ich möchte, dass Sie dies berücksichtigen, dass die Verwendung eines schwachen Akkus oder eines 100% igen Batterieauslösers den Zweck dieser Antwort zunichte machen würde, nämlich die Änderungen zu überschreiben, die Android vornehmen möchte. Wenn Sie beispielsweise LIMIT auf 0 einstellen, wenn der Akku 100% erreicht, würde Ihr Android den Bildschirm wie gewohnt maximal beleuchten und in wenigen Millisekunden (Sie haben richtig gelesen) Ihre Automatisierungs-App ausgeführt und das Limit festgelegt. In diesen Millisekunden kann Ihr Schlaf unterbrochen werden.
In einer anderen Situation, wenn die Absicht eines Akkus mit niedriger Batterie vom System gesendet wird, wird auf dem Tablet von Cool Guy möglicherweise ein maximal beleuchteter Bildschirm angezeigt, und in wenigen Millisekunden würde die Helligkeit auf LIMIT zurückfallen.
Die Problemumgehung besteht darin, den Batteriestand auf 16 oder mehr für einen niedrigen Batterieauslöser und 99 oder weniger für eine vollständige Batterieladung einzustellen.