Maison  >  Article  >  Java  >  Comment ajuster par programme la luminosité du système sous Android ?

Comment ajuster par programme la luminosité du système sous Android ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-25 02:56:29285parcourir

How to Programmatically Adjust System Brightness in Android?

Ajustement de la luminosité du système par programmation

Malgré la définition de l'attribut screenBrightness des paramètres de disposition de la fenêtre, aucun changement de luminosité n'est observé. Ce problème incite à explorer des méthodes alternatives pour modifier par programmation la luminosité du système.

Solution :

Pour régler efficacement la luminosité du système, envisagez les étapes suivantes :

  1. Déclarez les variables d'instance suivantes dans votre classe d'activité :

    private int brightness;
    private ContentResolver cResolver;
    private Window window;
  2. Dans la méthode onCreate, récupérez le résolveur de contenu, la référence de la fenêtre et la luminosité actuelle du système :

    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
    }
  3. Implémentez un mécanisme pour surveiller les changements de luminosité (par exemple, un écouteur SeekBar).
  4. Lors du réglage de la luminosité, réglez la luminosité du système à l'aide de la mise à jour variable de luminosité et mettez à jour les attributs de la fenêtre :

    Settings.System.putInt(cResolver, Settings.System.SCREEN_BRIGHTNESS, brightness);
    
    LayoutParams layoutpars = window.getAttributes();
    layoutpars.screenBrightness = brightness / 255f;
    window.setAttributes(layoutpars);
  5. N'oubliez pas de déclarer l'autorisation nécessaire dans le fichier AndroidManifest.xml :

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

Remarque :

Pour les niveaux d'API supérieurs ou égaux à 23 (Android 6.0 Marshmallow), vous devrez demander l'autorisation WRITE_SETTINGS via une activité de paramètres ou via l'activité. Bibliothèque de compatibilité (ActivityCompat).

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