Maison  >  Article  >  Java  >  Comment contrôler par programme la luminosité de l'écran sur Android : un guide étape par étape

Comment contrôler par programme la luminosité de l'écran sur Android : un guide étape par étape

Linda Hamilton
Linda Hamiltonoriginal
2024-10-25 12:34:02315parcourir

How to Programmatically Control Screen Brightness on Android: A Step-by-Step Guide

Ajustement par programmation de la luminosité du système : un guide complet

La modification de la luminosité du système par programmation est une fonctionnalité utile pour les applications qui nécessitent de contrôler l'éclairage de l'écran de l'appareil. . Cet article présente une solution détaillée à cette tâche.

Approche initiale : définition de l'attribut de luminosité de l'écran

Votre approche initiale utilisant WindowManager.LayoutParams a des limites. Le champ screenBrightness ne prend que des valeurs comprises entre 0,0 et 1,0, et non la valeur maximale attendue de 255.

Solution alternative : utilisation de l'API de paramètres

Une solution plus robuste réside dans le API de paramètres. En utilisant les classes ContentResolver et System, vous pouvez manipuler directement les paramètres de luminosité du système. Voici comment procéder :

1. Initialisation :

a. Définissez une variable privée pour stocker la valeur de luminosité.
b. Récupérez le ContentResolver et l'objet Window actuel.
c. Initialisez la variable de luminosité avec la luminosité actuelle du système.

2. Surveillance des changements de luminosité :

Écrivez du code pour écouter et répondre aux changements de luminosité.

3. Mise à jour de la luminosité :

a. Définissez la luminosité du système à l'aide de Settings.System.putInt() et de la valeur de luminosité mise à jour.
b. Mettez à jour les attributs de la fenêtre en définissant layoutpars.screenBrightness sur la valeur de luminosité normalisée à 1,0.
c. Appliquez les modifications d'attribut à la fenêtre.

4. Autorisations du manifeste :

Pour Android Marshmallow et versions ultérieures, vous devez demander l'autorisation WRITE_SETTINGS via l'activité Paramètres.

Exemple de code :

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

En suivant ces étapes, vous pouvez modifier efficacement la luminosité du système par programmation, offrant ainsi une plus grande flexibilité et des options de personnalisation pour vos applications.

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