El atributo screenBrightness a 0.0f en Android 4.2.2 ya no apaga la pantalla?

Aquí está el código relevante:

WindowManager.LayoutParams windowParams = getWindow().getAttributes(); windowParams.flags |= LayoutParams.FLAG_KEEP_SCREEN_ON; windowParams.screenBrightness = 0.0f; getWindow().setAttributes(windowParams); 

También intenté settingBrightness de la pantalla a 0 (un entero más bien que float), así como la línea siguiente que encontré en una respuesta del desbordamiento de la pila:

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

No dados. La pantalla se atenúa, pero no se apaga. El código anterior funcionaba en versiones anteriores de Android. Acabo de probarlo en un emulador para asegurarse. ¿Se implementó un nuevo método para controlar la pantalla?

Llame a las siguientes dos funciones para desactivar la pantalla, ya que su código no es coherente.

Desde Docs:

  public void goToSleep (long time) 

Se agrega en el nivel 1 de API Fuerza al dispositivo a ir a dormir.

Anula todos los bloqueos de llamada en espera. Esto es lo que sucede cuando se pulsa la tecla de encendido para apagar la pantalla. Requiere el permiso DEVICE_POWER.

  public void wakeUp (long time) 

Se agrega en el nivel API 17 Fuerza al dispositivo a despertarse desde el modo de suspensión.

Si el dispositivo está actualmente dormido, lo despierta, de lo contrario no hace nada. Esto es lo que sucede cuando se pulsa la tecla de encendido para encender la pantalla.

Requiere el permiso DEVICE_POWER.

No estoy seguro de por qué lo que estás haciendo no está funcionando. Este es un hack sucio pero tal vez podría cambiar el tiempo de espera de la pantalla a un tiempo muy bajo.

 android.provider.Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_OFF_TIMEOUT, time); 

Say time=300 que es de 300 milisegundos.

No sé exactamente lo que está tratando de lograr aquí, pero definitivamente para controlar la pantalla como wake / sleep, debe echar un vistazo a la clase PowerManager, es simple y fácil de usar: http://developer.android.com /reference/android/os/PowerManager.html

Este es un ejemplo de cómo usarlo:

 protected void setScreenLock(boolean on){ if(mWakeLock == null){ PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); mWakeLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK | PowerManager.ON_AFTER_RELEASE, TAG); } if(on){ mWakeLock.acquire(); }else{ if(mWakeLock.isHeld()){ mWakeLock.release(); } mWakeLock = null; } } 

¡Saludos!

Por lo que he encontrado, ya no es posible desconectar de forma fiable la pantalla en la nueva versión de Android. La única solución que parece funcionar es la que requiere el permiso DEVICE_POWER, que es un permiso restringido .

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