以编程方式打开屏幕
我想解锁屏幕并将其打开以在事件触发器上显示弹出窗口。我可以使用
newKeyguardLock = km.newKeyguardLock(HANDSFREE);
newKeyguardLock.disableKeyguard();
KeyGuardService
解锁屏幕,但无法打开屏幕。我正在使用
wl = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, HANDSFREE);
wl.acquire();
但没有成功。屏幕仍然处于关闭状态。 我怎样才能实现这个目标?
I would like to unlock screen and switching it on to show a popup on an event trigger. I am able to unlock the screen using
newKeyguardLock = km.newKeyguardLock(HANDSFREE);
newKeyguardLock.disableKeyguard();
on KeyGuardService
but I cannot turn on the screen. I am using
wl = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, HANDSFREE);
wl.acquire();
but with no success. The screen still remains off.
How can I achieve this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
作者注:这是我在 2012 年写的。我不知道它是否还有效。请务必查看其他最新的答案。
阿米尔的回答让我很接近,但你至少需要
ACQUIRE_CAUSES_WAKEUP
标志(针对 Android 2.3.3 构建)。Note from author: I wrote this back in 2012. I don't know if it works anymore. Be sure to check out the other more recent answers.
Amir's answer got me close, but you need the
ACQUIRE_CAUSES_WAKEUP
flag at least (Building against Android 2.3.3).这是一个非常受欢迎的问题,但现在接受的答案已经过时了。
以下是打开屏幕或从活动中唤醒设备屏幕的最新方法:
使用WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON 但 FLAG_TURN_SCREEN_ON 标志已在
API 级别 27
中弃用,因此您可以使用 Activity.setTurnScreenOn(true) 从API 级别 27
开始。This is very popular question but the accepted answer now is outdated.
Below is latest way to Turn On Screen OR wake up your device screen from an activity:
Use WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON but FLAG_TURN_SCREEN_ON flag has been deprecated in
API level 27
so you can use Activity.setTurnScreenOn(true) fromAPI level 27
onward.在主活动的 OnCreate() 中编写以下代码:
它会导致设备唤醒。
不要忘记disableKeyguard()来解锁设备...
In your main activity's OnCreate() write following code:
It causes the device to wake up.
Do not forget disableKeyguard() to unlock the device...
未定义的 NullPointer 检查并设置超时的答案:
undefined's answer with NullPointer check and set timeout :
您可以这样做:
确保在清单中设置权限:
This is how you can do it:
make sure to set permission in the manifest :
2023工作Kotlin版本
我需要修改这个答案https://stackoverflow.com/a/50979446/10233647 一点点,但终于成功了!
简单地尝试一下:
当屏幕锁定时,这确实会唤醒屏幕!
2023 working Kotlin version
I needed to modify this answer https://stackoverflow.com/a/50979446/10233647 a little bit, but finally managed to make it work!
Try simply:
This really wakes the screen, when it's locked!