我知道这个问题已经被问过很多次了,但从来没有得到令人满意的回答。
我的问题如下:
我有一项 Activity 可以防止屏幕在预定义的时间内关闭。
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
当预定义的时间结束时,我会显示一个带有倒计时的对话框,通知用户如果他不按“取消”,显示屏将在 10 秒后关闭。
我设法关闭了显示屏,但手机总是切换到待机模式。
为了关闭我使用了:
Window mywindow = getWindow();
WindowManager.LayoutParams lp = mywindow.getAttributes();
lp.screenBrightness = 0.0f;
mywindow.setAttributes(lp);
是否有可能在不进入待机模式(暂停 Activity )的情况下使显示屏完全变暗。
我的目标是用户只需点击显示屏即可再次调亮屏幕。因此 Activity 必须保持 Activity 状态。
有人问过类似的问题here .
因为这个问题已经问了快一年了,我希望同时有人能解决这个问题。
很多问候
希奇
最佳答案
似乎无法通过触摸显示屏来关闭屏幕并重新激活。
我现在的新方法:
private WakeLock screenWakeLock;
PowerManager pm = PowerManager.getSystemService(Context.POWER_SERVICE);
screenWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,
"screenWakeLock");
screenWakeLock.acquire();
PARTIAL_WAKE_LOCK 保持 CPU 运行但允许显示器关闭。
当按下电源或主页按钮时,显示屏再次打开并且 Activity 再次可见(无需“滑动解锁”或其他方式)。
不要忘记释放 screenWakeLock
。
在我的例子中,我是在 Activity 的 onResume()
中完成的:
if (screenWakeLock != null) {
if(screenWakeLock.isHeld())
screenWakeLock.release();
screenWakeLock = null;
}
也许这对将来遇到类似问题的人有帮助。
关于Android - 关闭屏幕而不进入待机模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14274390/