在把这篇文章标记为“复制品”之前,我写这篇文章是因为没有其他文章能解决这个问题。
我试图关闭设备,然后在几分钟后或传感器改变,打开它回来。
关闭显示测试
我可以通过以下方式关闭屏幕:
params.flags |= LayoutParams.FLAG_KEEP_SCREEN_ON;
params.screenBrightness = 0;
getWindow().setAttributes(params);
我无法使用 wl.release ()方法关闭屏幕。
打开显示测试
我的第一个猜测,如下,不工作。什么也没有发生,屏幕仍然关闭。
params.flags |= LayoutParams.FLAG_KEEP_SCREEN_ON;
params.screenBrightness = -1f;
getWindow().setAttributes(params);
然后我还尝试使用 wakelocks,但没有成功。
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "tag");
wl.acquire();
最后我尝试了下面的方法,但是没有结果。
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
总而言之,对于这些方法中的任何一个,我在控制台中都没有遇到任何类型的错误。我的测试文本“屏幕应该在”,是在屏幕上当我打开设备使用电源按钮。这表明代码应该已经运行。请只回答如果你已经测试了代码,似乎很多功能,如 params.screenBrightness = -1
,不工作,因为他们应该根据 sdk。