Deseo enviar el dispositivo a modo de suspensión o apagar la pantalla. He investigado y encontrado este tema: Turn off screen on AndroidCómo apagar la pantalla o enviar el dispositivo a modo de suspensión
Básicamente, el son tres maneras de hacerlo, pero no he encontrado problemas para los tres:
a) Opción 1:
PowerManager manager = (PowerManager) getSystemService(Context.POWER_SERVICE);
manager.goToSleep(int amountOfTime);
Problema : Causa FC. He leído que necesito DEVICE_POWER
permisos, pero no se puede otorgar para aplicaciones normales.
b) Opción 2:
PowerManager manager = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = manager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "Your Tag");
wl.acquire();
wl.release();
Problema: Esto no funciona para mí. No sé por qué. No me da un FC, pero es inofensivo.
c) Opción 3:
WindowManager.LayoutParams params = getWindow().getAttributes();
params.flags |= LayoutParams.FLAG_KEEP_SCREEN_ON;
params.screenBrightness = 0;
getWindow().setAttributes(params);
Problema: puedo conseguir que funcione, pero cuando intente encender el dispositivo que hace cosas extrañas, como no me gusta volver, o si mis aplicaciones está al frente, automáticamente se va a dormir justo después de presionar el botón. Esto se parece más a una sugerencia o solución alternativa que la solución normal.
¿Alguien me puede decir algún buen método para enviar el dispositivo a dormir o apagar la pantalla que se puede ejecutar sin problemas? Me parece raro que una funcionalidad simple como esta no sea una buena forma de usarla (o al menos esté bien documentada)
¿Qué pasa si yo quiero que apagar la pantalla y se bloquea hasta que mis tiempos de bloqueo de pantalla a cabo? –