Systemhelligkeit programmgesteuert anpassen
Obwohl das screenBrightness-Attribut der Fensterlayoutparameter eingestellt ist, wird keine Änderung der Helligkeit beobachtet. Dieses Problem erfordert die Erforschung alternativer Methoden zur programmgesteuerten Änderung der Systemhelligkeit.
Lösung:
Um die Systemhelligkeit effektiv anzupassen, beachten Sie die folgenden Schritte:
Deklarieren Sie die folgenden Instanzvariablen in Ihrer Aktivitätsklasse:
private int brightness; private ContentResolver cResolver; private Window window;
Rufen Sie innerhalb der onCreate-Methode den Inhaltslöser, die Fensterreferenz und die aktuelle Systemhelligkeit ab :
cResolver = getContentResolver(); window = getWindow(); 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) { // Handle the error gracefully }
Stellen Sie beim Anpassen der Helligkeit die Systemhelligkeit mithilfe der aktualisierten ein Helligkeitsvariable und aktualisieren Sie die Fensterattribute:
Settings.System.putInt(cResolver, Settings.System.SCREEN_BRIGHTNESS, brightness); LayoutParams layoutpars = window.getAttributes(); layoutpars.screenBrightness = brightness / 255f; window.setAttributes(layoutpars);
Vergessen Sie nicht, die erforderliche Berechtigung in der Datei AndroidManifest.xml zu deklarieren:
<code class="xml"><uses-permission android:name="android.permission.WRITE_SETTINGS" /></code>
Hinweis:
Für API-Ebenen größer oder gleich 23 (Android 6.0 Marshmallow) müssen Sie die WRITE_SETTINGS-Berechtigung über eine Einstellungsaktivität oder über die Aktivität anfordern Kompatibilitätsbibliothek (ActivityCompat).
Das obige ist der detaillierte Inhalt vonWie kann ich die Systemhelligkeit in Android programmgesteuert anpassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!