Android:如何以编程方式打开和关闭屏幕?

Android:如何以编程方式打开和关闭屏幕?

在将这篇文章标记为“复制”之前,我写这篇文章是因为没有其他帖子能解决这个问题。

我试图关闭设备,然后在几分钟后或传感器改变,打开它。

关闭显示测试

我可以使用以下方法关闭屏幕:

params.flags |= LayoutParams.FLAG_KEEP_SCREEN_ON;params.screenBrightness = 0;getWindow().setAttributes(params);

我无法使用wl.free()方法关闭屏幕。

打开显示测试

我的第一个猜测,如下所示,是行不通的。什么都没发生,屏幕仍然关闭。

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的要求工作。


哔哔one
浏览 1077回答 3
3回答

红糖糍粑

我写了这个方法来打开屏幕锁定后的屏幕。对我来说是完美的。试试-    private void unlockScreen() {         Window window = this.getWindow();         window.addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);         window.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);         window.addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);     }并从onResume().

摇曳的蔷薇

我建议这个:PowerManager.WakeLock&nbsp;wl&nbsp;=&nbsp;pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK&nbsp;|&nbsp;PowerManager.ACQUIRE_CAUSES_WAKEUP,&nbsp;"tag");wl.acquire();这样解释了获取_GENS_WUKUKUP标志:正常的尾流锁实际上不会打开照明。相反,当它打开时(例如,从用户活动中),它们会使照明保持不变。当获得锁时,此标志将强制屏幕和/或键盘立即打开。一个典型的用途是对用户立即查看的重要通知。另外,确保在AndroidManifewst.xml文件中具有以下权限:<uses-permission&nbsp;android:name="android.permission.WAKE_LOCK"&nbsp;/>
打开App,查看更多内容
随时随地看视频慕课网APP