Heim >Java >javaLernprogramm >Wie kann ich die Bildschirmhelligkeit auf Android programmgesteuert anpassen?

Wie kann ich die Bildschirmhelligkeit auf Android programmgesteuert anpassen?

DDD
DDDOriginal
2024-10-25 06:31:02417Durchsuche

How to Programmatically Adjust Screen Brightness on Android?

Systemhelligkeit programmgesteuert ändern

Um die Helligkeit des Bildschirms Ihres Geräts programmgesteuert anzupassen, können Sie verschiedene Ansätze verwenden. Eine gängige Methode ist die Handhabung der Bildschirmhelligkeitsattribute:

<code class="java">WindowManager.LayoutParams lp = window.getAttributes();
lp.screenBrightness = (float)brightness;
window.setAttributes(lp);</code>

Diese Technik funktioniert jedoch möglicherweise aufgrund möglicher Einschränkungen oder falscher Maximalwerteinstellungen nicht immer.

Ein alternativer Ansatz ist die Hebelwirkung die Systemeinstellungen und ContentResolver:

<code class="java">private ContentResolver cResolver;
private Window window;
private int brightness;

onCreate() {
    cResolver = getContentResolver();
    window = getWindow();

    try {
        // Handle auto brightness mode
        Settings.System.putInt(cResolver, Settings.System.SCREEN_BRIGHTNESS_MODE, Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
        // Retrieve current brightness
        brightness = Settings.System.getInt(cResolver, Settings.System.SCREEN_BRIGHTNESS);
    } catch (SettingNotFoundException e) {
        Log.e("Error", "Cannot access system brightness");
        e.printStackTrace();
    }
}</code>

Sie können dann die Helligkeit anpassen:

<code class="java">// Update system brightness
Settings.System.putInt(cResolver, Settings.System.SCREEN_BRIGHTNESS, brightness);

// Update window brightness attributes
LayoutParams layoutpars = window.getAttributes();
layoutpars.screenBrightness = brightness / 255f;
window.setAttributes(layoutpars);</code>

Vergessen Sie nicht, die erforderliche Berechtigung in Ihr Manifest aufzunehmen:

<code class="xml"><uses-permission android:name="android.permission.WRITE_SETTINGS" /></code>

Für API-Level 23 und höher müssen Sie die Erlaubnis über die Aktivität „Einstellungen“ anfordern, wie in der Dokumentation beschrieben.

Das obige ist der detaillierte Inhalt vonWie kann ich die Bildschirmhelligkeit auf Android programmgesteuert anpassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn