Estoy tratando de configurar el brillo de la pantalla desde un widget. Sabemos que esto es fácilmente posible, ya que un montón de widgets de hacer esto ya, pero ¿cómo .....Actualizando la pantalla desde un widget?
En un servicio que llamo desde el widget que hago esto para ajustar el brillo:
Settings.System.putInt(this.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, 200);
que funciona genial, excepto que no "actualiza" la pantalla para aplicar la nueva configuración. Apagar y encender la pantalla actualiza la configuración de visualización, por lo que sabemos que el código funciona.
También leí en varios sitios que algo como esto actualizará la pantalla, pero no podemos usar esto ya que estamos en un widget. La actividad del widget y el servicio no pueden usar getWindow.
WindowManager.LayoutParams lp = getWindow().getAttributes();
lp.screenBrightness = 100/100.0f;
getWindow().setAttributes(lp);
¿Cómo, si están todos estos widgets como Beautiful Widgets, control de potencia, controles extendidos, etc haciendo esto?
Actualización: Otro póster recomendaba el inicio de una actividad vacía y la ejecución de la actualización de WindowManager. Eso funciona pero trae una fea pantalla negra por un segundo. Como los otros widgets no hacen esto, tiene que haber una forma de evitar que se muestre la fea pantalla en blanco.
Para el blackscreen, definir un tema en la actividad, que contiene lo siguiente: –
¡Eso funcionó a la perfección! ¿Desea publicar eso como respuesta a continuación para todos? Usé tu tema y lo puse en mi manifiesto. – pcm2a