Programmgesteuertes Anpassen der Systemhelligkeit: Eine umfassende Anleitung
Das programmgesteuerte Ändern der Systemhelligkeit ist eine nützliche Funktion für Anwendungen, die eine Steuerung der Displaybeleuchtung des Geräts erfordern . Dieser Artikel stellt eine detaillierte Lösung für diese Aufgabe vor.
Erster Ansatz: Festlegen des Bildschirmhelligkeitsattributs
Ihr erster Ansatz mit WindowManager.LayoutParams weist Einschränkungen auf. Das Feld „screenBrightness“ nimmt nur Werte von 0,0 bis 1,0 an, nicht den erwarteten Maximalwert von 255.
Alternative Lösung: Verwendung der Einstellungs-API
Eine robustere Lösung befindet sich im Einstellungs-API. Durch die Verwendung der ContentResolver- und System-Klasse können Sie die Helligkeitseinstellungen des Systems direkt bearbeiten. So geht's:
1. Initialisierung:
a. Definieren Sie eine private Variable zum Speichern des Helligkeitswerts.
b. Rufen Sie den ContentResolver und das aktuelle Window-Objekt ab.
c. Initialisieren Sie die Helligkeitsvariable mit der aktuellen Systemhelligkeit.
2. Überwachen von Helligkeitsänderungen:
Schreiben Sie Code, um auf Helligkeitsänderungen zu achten und darauf zu reagieren.
3. Helligkeit aktualisieren:
a. Stellen Sie die Systemhelligkeit mit Settings.System.putInt() und dem aktualisierten Helligkeitswert ein.
b. Aktualisieren Sie die Fensterattribute, indem Sie „layoutpars.screenBrightness“ auf den auf 1,0 normalisierten Helligkeitswert setzen.
c. Übernehmen Sie die Attributänderungen auf das Fenster.
4. Manifestberechtigungen:
Für Android Marshmallow und höher müssen Sie die WRITE_SETTINGS-Berechtigung über die Einstellungsaktivität anfordern.
Beispielcode:
<code class="java">private ContentResolver cResolver; private Window window; private int brightness; @Override protected void onCreate(Bundle savedInstanceState) { // Initialize settings and brightness. try { Settings.System.putInt(cResolver, Settings.System.SCREEN_BRIGHTNESS_MODE, Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL); brightness = Settings.System.getInt(cResolver, Settings.System.SCREEN_BRIGHTNESS); } catch (SettingNotFoundException e) { Log.e("Error", "Cannot access system brightness"); e.printStackTrace(); } // Monitor brightness changes... } // Method to update brightness public void setBrightness(int newBrightness) { // Update system brightness and window attributes. }</code>
Indem Sie diese Schritte befolgen, können Sie die Systemhelligkeit effektiv programmgesteuert ändern und so mehr Flexibilität und Anpassungsmöglichkeiten für Ihre Anwendungen bieten.
Das obige ist der detaillierte Inhalt vonSo steuern Sie die Bildschirmhelligkeit auf Android programmgesteuert: Eine Schritt-für-Schritt-Anleitung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!