Ajustar brillo en Android 7

Acabo de descubrir que programando para Android si pones el brillo de la pantalla a 0.0f no se ajusta el brillo al mínimo, si no que se apaga la pantalla.

WindowManager.LayoutParams layoutParams = getWindow().getAttributes();
layoutParams.screenBrightness = 0.0f;
getWindow().setAttributes(layoutParams);

Si realmente queremos poner el brillo al minimo debemos fijar su valor a 0.1f

layoutParams.screenBrightness = 0.1f;

El caso contrario es poner el brillo al máximo, en cuyo caso habría que poner el valor a 1.0f.

layoutParams.screenBrightness = 1.0f;

Adicionalmente para saber el nivel de brillo actual usamos la siguiente linea.

brilloOriginal = getWindow().getAttributes().screenBrightness;

Y para poner el brillo en automatico (usando el sensor del telefono cambiara el brillo).

int brightnessMode;
try {
	brightnessMode = Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE);
} catch (SettingNotFoundException e) {
}

//Comprobar si el brillo esta automatico o manual
if (brightnessMode == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC) {
	//Brillo manual
	Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
}else{
	//Brillo automatico
	Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC);
}
CompartirTweet about this on TwitterShare on FacebookShare on Google+Email this to someoneShare on LinkedInShare on TumblrPin on PinterestBuffer this pageDigg thisFlattr the authorShare on RedditShare on StumbleUponPrint this page

Leave a Reply

  

  

  

 

7 thoughts on “Ajustar brillo en Android

  1. Comenta Fernando Nov 27,2014 02:57

    Hola, muchas gracias por el ejemplo.

    Funciona todo perfectamente, pero en mi caso me gustaría que se apagase la pantalla por completo y con el valor 0.0f no funciona, incluso tendría un poco más de brillo que con 0.1f. Gracias!

    • Comenta Jose Manuel Nov 27,2014 09:13

      Hola Fernardo,

      Este post tiene tiempo ya y quizás en las nuevas versiones ya no sea este el modo correcto de hacerlo. Cuando tenga algo de tiempo actualizare el post.

      Un saludo!

  2. Comenta InformaticosGB Ene 26,2015 15:37

    Hola a mi me funcionó así:

    Window w = this.getWindow();
    w.addFlags((int) WindowManager.LayoutParams.BRIGHTNESS_OVERRIDE_NONE); // se apaga la pantalla por completo.

    • Comenta Jose Manuel Ene 26,2015 16:57

      Fantástico, gracias por comentar!

    • Comenta Adrian Sep 2,2017 18:46

      Hola si, a mi tambien me apaga la pantalla. Lo que no puedo hacer es que restablezca el brillo, queda negra en realidad. Un timer restablece el brillo con 1, con OVERRIDE_FULL , TURN_SCREEN_ON, y nada, tu como la vuelves a la normalidad?

  3. Comenta Androides APK Jun 8,2017 02:29

    Pixoff tambien te da estas posibilidades.

    • Comenta Jose Manuel Jun 15,2017 09:28

      Si, tienes razón, tanto esa aplicación como muchas otras te dan la opción. Aquí estoy describiendo como hacerlo desde tu propia aplicación.