2010-12-28 23 views

Respuesta

-1

según esto - http://developer.android.com/reference/android/view/WindowManager.LayoutParams.html#screenBrightness

puede cambiar el brillo en

WindowManager.LayoutParams settings = getWindow().getAttributes(); 
settings.screenBrightness = newValue; 
getWindow().setAttributes(settings); 

también referirse respuesta Hamiora para una explicación más detallada.

+1

Hola, quiero obtener pero no establecer el brillo. – yuankai

+3

hola, flotante savedBrightness = settings.screenBrightness; no puede obtener el brillo actual, pero si la aplicación lo reemplaza, y lo intento, pero siempre obtengo -1.0f de él, ¡porque no lo anulo! – yuankai

+0

@yuankai Debe realizar un control adicional. Si su 'savedBrightness' <0 significa que la aplicación usa el brillo predeterminado. El nivel de brillo predeterminado puede recuperarse mediante la respuesta de MidhunVP. (Solo tenga en cuenta que 'settings.screenBrightness' varía de 0f a 1f, mientras que la configuración del sistema tiene valores de 0 a 255) –

13

Hola para obtener el nivel de brillo actual del sistema androide puede utilizar este código:

try { 
    float curBrightnessValue=android.provider.Settings.System.getInt(
    getContentResolver(), android.provider.Settings.System.SCREEN_BRIGHTNESS); 
} catch (SettingNotFoundException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 
+5

No, lee las configuraciones actuales de brillo, no el brillo actual. – greenoldman

+1

@greenoldman Eso es verdad. El brillo actual se puede recuperar mediante 'getWindow(). GetAttributes(). ScreenBrightness'. Sin embargo, si este brillo actual es <0, esto significa que la aplicación usa la configuración actual para el brillo (que puede cargarse por los medios provistos en la respuesta actual) –

+0

'getInt()' Método return Int value.But Brightness store as float.Better para usar 'getFloat()' – Elshan

1

Esta fue preguntado hace un tiempo, pero sólo para ampliar la respuesta de la ficción:

settings.screenBrightness devolverá -1 si no se ha sobrescrito previamente en el código. Este es el comportamiento correcto, ya que al configurar screenBrightness en -1 se configurará el brillo en el nivel de brillo actual del sistema.

El usuario puede cambiar el brillo del sistema en cualquier momento, por lo que probablemente no se use mucho para almacenar el valor real, si solo intenta devolver el brillo a su valor original, ya que el valor real podría ser "fuera de plazo".

4

Usted puede leer el contenido de este archivo de sistema

/sys/class/LED/LCD de retroiluminación/brillo

Este valor es brillo de la pantalla actual dentro del rango 0-255

Cuestiones relacionadas