在将此帖子标记为“重复”之前,我正在写此帖子,因为没有其他帖子可以解决该问题。
我试图关闭设备,然后在几分钟后或更换传感器后,将其重新打开。
关闭显示测试
我可以使用以下方法关闭屏幕:
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的要求正常工作。