¿Cómo leer el valor real, actual del brillo / dim de la pantalla para Android?
Toda la pregunta está en el título, así que me gustaría hacer hincapié en lo que puedo:
-
Estoy interesado en el valor actual (no en la configuración actual de la misma)
-
Estoy interesado en el valor real (por lo que si el brillo de la pantalla es ahora inferior a un segundo antes, el valor debe ser menor también)
Lamentablemente, a pesar de leer numerosos puestos, no sé la respuesta. Escribí poca utilidad, que cada segundo muestra el tiempo y el brillo. Y no funciona – porque cuando el teléfono (LG L5 con Android 4.0) baja automáticamente el brillo (la pantalla está atenuada, y no hay duda) los valores permanecen iguales !
Aquí está la pieza relevante de código:
try { float sys_brightness = android.provider.Settings.System .getFloat(getContentResolver(), android.provider.Settings .System.SCREEN_BRIGHTNESS); WindowManager.LayoutParams lp = getWindow().getAttributes(); float dim = lp.dimAmount; float scr_brightness = lp.screenBrightness; boolean dim_changed = (lp.flags & WindowManager.LayoutParams .DIM_AMOUNT_CHANGED)>0; textView.setText(String.format("%02d:%02d:%02d", hours, minutes, seconds)+" " +String.format("%02f, %02f, %02f", sys_brightness,dim,scr_brightness) +" "+Boolean.toString(dim_changed)); } catch (SettingNotFoundException ex) { textView.setText("excepton"); }
Para el registro, los valores son – 92, 1,0, -1,0, falso. Todo el tiempo.
PREGUNTA : ¿cómo leer el valor actual, real de brillo / oscuridad?
He añadido el reloj a la salida para estar seguro, mis lecturas son tictac. Y estan.
- Android: Botón al final del listview O parte inferior de la pantalla
- Android: Cómo manejar el tamaño de las imágenes para varias pantallas
- Establecer pantalla completa enCrear
- Android: deshabilita las rotaciones de 90 °, pero permite rotaciones de 180 °
- ¿Cómo compartir programaticamente la pantalla del dispositivo Android con otra vía wifi? (No captura de pantalla)
- Cómo activar la pantalla durante el bloqueo parcial de la vigilia
- ¿Cuándo Android toma su reciente captura de pantalla del selector de aplicaciones?
- Establecer el brillo de la pantalla de Android
Si haces grep -r "SCREEN_BRIGHTNESS" *
en android/system/frameworks
(código fuente android) encontrarás: BrightnessController.java que se utiliza para controlar el brillo. Quizás puedas usar esta clase como inspiración.
El fragmento siguiente produce un número de coma flotante que varía de 0 a 1, lo que parece corresponder al brillo.
WindowManager.LayoutParams layoutParams = getWindow().getAttributes(); Float darkness = layoutParams.screenBrightness;
Parece que la tableta Asus muestra una pantalla tenue cuando el brillo se pone a cero. El fuego encendido es bastante oscuro y se retira detrás de la pantalla de la cerradura.
- Códigos de respuesta del servidor de la biblioteca de verificación de licencias de Android
- Android hindi chars suave teclado?