Actualización de brillo de pantalla en Android después de cambiar mediante programación

StackOverflow https://stackoverflow.com/questions/4366255

  •  09-10-2019
  •  | 
  •  

Pregunta

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

Para cambiar el nivel de brillo, yo uso:

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

Esto modifica la configuración de pantalla (de hecho, en Pantalla-> Brillo el nivel es correcto), pero el brillo de la pantalla efectiva no se cambia. Si i bloquear la pantalla de desbloqueo y, finalmente, el brillo cambia al conjunto de valores i.

Asumo que esto es un problema de configuración de actualización, así que ¿cómo pueden los ajustes de la pantalla se actualizarán inmediatamente después del cambio de configuración?

He leído que WindowManager.LayoutParams lp = getWindow().getAttributes(); se debe utilizar, pero estoy trabajando en una aplicación Widget por lo GetWindow () no puede ser llamado.

¿Fue útil?

Solución

Yo tenía un problema similar y acabo de crear una actividad con ninguna interfaz de usuario para hacer el cambio de brillo, utiliza una intención de ejecutarlo desde la App Widget.

Otros consejos

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

¿Se puede utilizar 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);

Esta multa código funciona cuando se está configurando el brillo de la pantalla del teléfono desde el interior de una clase definida por el usuario que es no extender una actividad , pero sólo necesita el contexto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top