cambiando la luminosità dello schermo in modo programmato in android

Voglio cambiare la luminosità dello schermo in modo programmato in android. Al momento uso questo codice:

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

Ma questo codice di esempio funziona su cupcake, non sulle ultime versioni. Sto utilizzando l'ultima versione di SDK .. Qual è la soluzione preferita per le versioni Android più recenti?

  • Stato pulsanti con background come AnimationDrawable in Android
  • trovare Distanza in chilometri in Android usando google places Api
  • Come utilizzare isInEditMode () per visualizzare il layout con visualizzazione personalizzata nell'editor
  • Come cambiare i themes (modalità notturna) senza riavviare l'attività?
  • Seleziona + text di copia in un TextView?
  • Google Cloud Endpoint continua a gettare un'exception "inaspettata di fine stream"
  • android migliore e sicuro modo di fermare thread
  • Come submit notifica a Android da php?
  • Facili methods di accesso al database in Android
  • Android: Come registrare la radio (audio) radio mp3
  • Come applicare l'image personalizzata alla casella di controllo in android
  • android richiede l'accesso dell'utente utilizzando una window di dialogo
  • 6 Solutions collect form web for “cambiando la luminosità dello schermo in modo programmato in android”

    Come si utilizza l'interface IHardwareService per questo? Un esempio può essere trovato in questo tutorial .

    Aggiornamento: il link di tutorial funziona ancora, ma il codice reale è disponibile anche nella risposta successiva.

    Questo è ansible fare utilizzando:

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

    Vedi anche: http://developer.android.com/reference/android/view/WindowManager.LayoutParams.html#screenBrightness

    Devi aggiungere params a Window prima che sia creato altrimenti butterà java.lang.IllegalArgumentException: Window type can not be changed after the window is added.

    Vedere l'esempio con 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(); 

    Si prega di notare che il valore di luminosità è compreso tra 0.0F e 1.0F.

    @kamal_tech_view: devi convertire il valore layout.screenBrightness = value; galleggiare

    Troppo tardi risposta ma vuole migliorare ..

    Ho provato con il codice di Tor-morten, ma è per uno schermo specifico, volevo cambiare ovunque, ho fatto servizio per questo.

    Cambiare la luminosità in base alla luce circostante in android

    Spero, sarà utile per gli altri.

     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(); 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.