在将此帖子标记为“重复”之前,我写此帖子是因为没有其他帖子提供问题的解决方案。
我正在尝试关闭设备,然后在几分钟或传感器更改后重新打开设备。
关闭显示测试
我可以使用以下方法关闭屏幕:
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);
我尝试使用唤醒锁,但没有成功。
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的说法并不像他们应该的那样工作。