Actualizar el brillo de la pantalla en Android después de cambiarlo por programación

Estoy tratando de actualizar el brillo de la pantalla de un widget, pero tengo algunos problemas.

Para cambiar el nivel de brillo, utilizo:

Settings.System.putInt(context.getContentResolver(),android.provider.Settings.System.SCREEN_BRIGHTNESS, 200); 

Esto modifica el ajuste de la pantalla (de hecho en Display-> Brightness el nivel es correcto) pero el brillo efectivo de la pantalla no cambia. Si bloqueo la pantalla y desbloqueo, el brillo cambia finalmente al valor establecido.

Supongo que esto es un problema de actualización de configuración, así que ¿cómo se puede actualizar la configuración de pantalla inmediatamente después de cambiar los ajustes?

He leído que WindowManager.LayoutParams lp = getWindow().getAttributes(); Debe ser utilizado, pero estoy trabajando en un Widget de aplicación para getWindow () no se puede llamar.

Tuve un problema similar y acaba de crear una actividad sin interfaz de usuario para hacer el cambio de brillo, utiliza una intención de ejecutarlo desde el Widget de la aplicación.

En primer lugar, el valor a modificar en LayoutParams es screenBrightness . A continuación, tendrá que hacer un window.setAttributes para aplicarlo. Como GeekYouUp dijo, puede hacer una actividad ficticia para obtener su objeto Window.

¿Puedes usar este código en tu RemoteView,

 Settings.System.putInt(context.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, brightness); // This makes the new screen brightness effective WindowManager.LayoutParams layoutParams = ((Activity)context).getWindow().getAttributes(); float b = brightness/255.0f; if(b == 0.0) b = 0.01f; layoutParams.screenBrightness = b; ((Activity)context).getWindow().setAttributes(layoutParams); 

Este código funciona bien cuando se establece el brillo de la pantalla del teléfono desde dentro de una clase definida por el usuario que no está ampliando una actividad, pero solo necesita el contexto.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.