Modification par programme de la luminosité du système
Tentative initiale et problème :
Vous avez tenté de modifier la luminosité du système par programme à l'aide de :
<code class="java">WindowManager.LayoutParams lp = window.getAttributes();
lp.screenBrightness = (255);
window.setAttributes(lp);</code>
Copier après la connexion
Cependant, cette méthode s'est avérée inefficace.
Solution :
Pour réussir à modifier la luminosité du système, vous devez utiliser l'approche suivante :
-
Initialiser les variables :
- Déclarez une variable pour stocker la valeur de luminosité souhaitée (par exemple, la luminosité).
- Créez un handle ContentResolver pour accéder aux paramètres du système (par exemple, cResolver).
- Obtenez une référence à l'objet fenêtre actuel (par exemple, fenêtre).
-
Gérer les paramètres de luminosité :
- Réglez le mode de luminosité de l'écran sur manuel pour désactiver la luminosité automatique (par exemple, Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL).
- Obtenez le niveau de luminosité actuel : luminosité = Settings.System.getInt(cResolver, Settings.System.SCREEN_BRIGHTNESS).
-
Mettre à jour la luminosité :
- Définissez la luminosité du système à l'aide de la variable de luminosité ajustée : Settings.System.putInt(cResolver, Settings.System.SCREEN_BRIGHTNESS, luminosité).
- Modifiez les attributs de la fenêtre pour qu'ils correspondent à la nouvelle luminosité : window.getAttributes ().screenBrightness = luminosité / 255f.
- Appliquer les modifications à la fenêtre : window.setAttributes(window.getAttributes()).
-
Autorisation du manifeste :
- Ajoutez l'autorisation WRITE_SETTINGS à votre AndroidManifest.xml.
-
Considérations supplémentaires :
- Pour les niveaux d'API Android > 23, vous devrez peut-être demander l'autorisation WRITE_SETTINGS via une invite d'activité.
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!