gpt4 book ai didi

android - 以编程方式在android中打开屏幕

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:58:23 25 4
gpt4 key购买 nike

我正在开发一个警报应用程序。在主要 Activity 中,我使用广播设置了闹钟。然后在广播接收器的 onReceive 中,我调用了使用户能够关闭或暂停闹钟的 Activity ...在该 Activity 中,在 onCreate 的开头,我使用此行打开屏幕并解锁设备:

final Window win = getWindow();
win.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
| WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
win.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
| WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);

这在装有 android 2.3.4 的 Samsung Galaxy S2 上完美运行,但不适用于装有 android 2.3.5 的 htc。在 htc 上,它什么都不做,当我按下锁定按钮时,屏幕会自动解锁,而无需我拖动圆圈。它就像 flag_dissmiss_keygard 正在工作,但 flag_turn_screen_on 没有。是否有其他方法或其他解决方案来执行此操作?

最佳答案

我一开始很像你,窗口标志并没有真正起作用。

我终于通过使用两个 Android 服务让它工作:KEYGUARD_SERVICEPOWER_SERVICE:

KeyguardManager km = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE);
final KeyguardManager.KeyguardLock kl = km.newKeyguardLock("MyKeyguardLock");
kl.disableKeyguard();

PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
wakeLock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP
| PowerManager.ON_AFTER_RELEASE, "MyWakeLock");
wakeLock.acquire();

不要忘记在完成后释放唤醒锁。

您需要请求权限 DISABLE_KEYGUARDWAKE_LOCK

关于android - 以编程方式在android中打开屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9966506/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com