Maison >Java >javaDidacticiel >Comment ajuster par programme la luminosité de l'écran sur Android ?

Comment ajuster par programme la luminosité de l'écran sur Android ?

DDD
DDDoriginal
2024-10-25 06:31:02417parcourir

How to Programmatically Adjust Screen Brightness on Android?

Modifier par programme la luminosité du système

Pour régler la luminosité de l'écran de votre appareil par programme, vous pouvez utiliser différentes approches. Une méthode courante consiste à gérer les attributs de luminosité de l'écran :

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

Cependant, cette technique peut ne pas toujours fonctionner en raison de limitations potentielles ou de paramètres de valeur maximale incorrects.

Une approche alternative consiste à exploiter les paramètres système et 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>

Vous pouvez ensuite régler la luminosité :

<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>

N'oubliez pas d'inclure l'autorisation nécessaire dans votre manifeste :

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

Pour l'API de niveau 23 et supérieur, vous devez demander l'autorisation via l'activité des paramètres comme décrit dans la documentation.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn