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 :
Déclarez les variables d'instance suivantes dans votre classe d'activité :
private int brightness; private ContentResolver cResolver; private Window window;
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 }
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);
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!