为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

哔哔one 2019-07-22 18:49:19
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的要求工作。
查看完整描述

3 回答

?
红糖糍粑

TA贡献1815条经验 获得超6个赞

我写了这个方法来打开屏幕锁定后的屏幕。对我来说是完美的。试试-

    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().


查看完整回答
反对 回复 2019-07-22
?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

我建议这个:

PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "tag");wl.acquire();

这样解释了获取_GENS_WUKUKUP标志:

正常的尾流锁实际上不会打开照明。相反,当它打开时(例如,从用户活动中),它们会使照明保持不变。当获得锁时,此标志将强制屏幕和/或键盘立即打开。一个典型的用途是对用户立即查看的重要通知。

另外,确保在AndroidManifewst.xml文件中具有以下权限:

<uses-permission android:name="android.permission.WAKE_LOCK" />


查看完整回答
反对 回复 2019-07-22
  • 3 回答
  • 0 关注
  • 1075 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信