Changer la luminosité de l'écran par programme dans Android

Je souhaite changer la luminosité de l'écran par programme dans Android. En ce moment, j'utilise ce code:

WindowManager.LayoutParams lp = getWindow().getAttributes(); float brightness=1.0f; lp.screenBrightness = brightness; getWindow().setAttributes(lp); 

Mais cet exemple de code fonctionne sur cupcake, pas sur les dernières versions. J'utilise la dernière version de SDK .. Quelle est la solution préférée pour les versions Android plus récentes?

  • Android - Comma en tant que séparateur décimal sur le clavier numérique
  • Curseur Android comment obtenir des valeurs nulles des colonnes
  • Android Studio 1.5 où ont mis des options d'émulateur
  • Comment puis-je envoyer un fichier csv / texte d'un téléphone Android vers une imprimante wifi?
  • Android Jack mockito alternative
  • Comment faire pour que Rotate3dAnimation soit plus lisse?
  • Android demandant un AlertDialog onBackPressed
  • Alternance de persistance Android sur SQLite
  • Obtenir des coordonnées d'écran par emplacement et longitude spécifiques (Android)
  • Android Get Bitmap ou le son des actifs
  • Les éléments de la liste personnalisée ne répondent pas à state_checked dans le sélecteur
  • Application de numérotation Android
  • 6 Solutions collect form web for “Changer la luminosité de l'écran par programme dans Android”

    Qu'en est-il de l'utilisation de l'interface IHardwareService pour cela? Un exemple peut être trouvé dans ce tutoriel .

    Mise à jour: le lien du tutoriel fonctionne toujours, mais le code actuel est également disponible dans la prochaine réponse.

    Ceci est possible en utilisant:

     WindowManager.LayoutParams layout = getWindow().getAttributes(); layout.screenBrightness = 1F; getWindow().setAttributes(layout); 

    Voir aussi: http://developer.android.com/reference/android/view/WindowManager.LayoutParams.html#screenBrightness

    Vous devez ajouter des paramètres à Window avant qu'il ne soit créé sinon il lancer java.lang.IllegalArgumentException: Window type can not be changed after the window is added.

    Voir l'exemple avec un android.app.Dialog.Dialog .

     final Dialog dialog = new Dialog(this) { @Override public void onAttachedToWindow() { super.onAttachedToWindow(); WindowManager.LayoutParams layout = getWindow() .getAttributes(); layout.screenBrightness = 1F; getWindow().setAttributes(layout); } }; dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE); dialog.show(); 

    Notez que la valeur de luminosité est comprise entre 0.0F et 1.0F.

    @kamal_tech_view: vous devez convertir la valeur layout.screenBrightness = valeur; flotter

    Réponse trop tardive, mais voulez améliorer …

    J'ai essayé avec le code de Tor-Morten, mais c'est pour un écran particulier, je voulais changer n'importe où, j'ai fait un service pour cela.

    Changer la luminosité en fonction de la lumière environnante dans Android

    Espoir, il sera utile à d'autres.

     final Dialog dialog = new Dialog(act); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); dialog .setContentView(R.layout.menubase_brightness_control); dialog.setCanceledOnTouchOutside(true); SeekBar global_brightness_control = (SeekBar) dialog .findViewById(R.id.global_brightness_control); global_brightness_control.setMax(255); global_brightness_control.setProgress(Settings.System.getInt( con.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS)); global_brightness_control .setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { public void onStopTrackingTouch(SeekBar seekBar) { // TODO Auto-generated method stub } public void onStartTrackingTouch(SeekBar seekBar) { // TODO Auto-generated method stub } public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { Settings.System .putInt(con.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, progress); } }); dialog.show(); 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.