2011-01-06 9 views
12

Im usar el siguiente código para mantener la pantalla en:Android: WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON pregunta

this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 

¿Hay alguna manera de desactivar/eliminar el FLAG_KEEP_SCREEN_ON adelante en el código? (Quiero que la pantalla se apague normalmente).

Gracias!

+1

puede simplemente clearFlags .. (GetWindow) clearFlags (WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON).; – Nepster

Respuesta

28

Probablemente se podría hacer algo como esto

this.getWindow().setFlags(this.getWindow().getFlags() & ~WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) 

¿Has mirado en el API? Hay también este método

http://developer.android.com/reference/android/view/Window.html#clearFlags%28int%29

this.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 

no he probado esto sea aún.

Imagino que esto funcionará para comprobar si se establece el indicador:

this.getWindow() getFlags() & WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON

. Editar: Según los comentarios, aparentemente así es como se obtiene el valor de la bandera.

this.getWindow().getAttributes().flags & WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON 

Puede haber un método para eso también, debe mirar el documento API.

+0

Hmm en el segundo eclipse de "getWindow" me dice que "getWindow no se puede resolver o no es un campo" – Johan

+0

Quise decir getWindow(). Pero no estoy del todo seguro de que el método getFlags funcione así. En realidad, no saqué la API – Falmarri

+0

Bien, bueno, no conseguí que funcionara. Gracias aunque – Johan

0

Prueba este

getWindow().clearFlags(android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 

Also read this