Android-屏幕关闭时无法重新启用键盘保护

Android-屏幕关闭时无法重新启用键盘保护,android,keyguard,Android,Keyguard,我正在尝试让我的应用程序在x个时间段后使用alarm manager重新启用键盘守卫。 基本上,我是这样做的: 假设我将屏幕锁定设置为在5分钟后启用 我的应用程序启动,我禁用键盘保护-工作得很好! 我创建了一个timerusing alarm manager,在3分钟后锁定屏幕,我在日志中看到警报在3分钟内发出,重新启用键盘保护的代码启动。屏幕在5分钟后关闭,我点击电源按钮,键盘保护被启用-工作得很好! 基本上,只要一切都在屏幕上进行,一切都可以正常工作。 现在假设我们保持与上面相同的场景,但将

我正在尝试让我的应用程序在x个时间段后使用alarm manager重新启用键盘守卫。 基本上,我是这样做的:

假设我将屏幕锁定设置为在5分钟后启用

我的应用程序启动,我禁用键盘保护-工作得很好! 我创建了一个timerusing alarm manager,在3分钟后锁定屏幕,我在日志中看到警报在3分钟内发出,重新启用键盘保护的代码启动。屏幕在5分钟后关闭,我点击电源按钮,键盘保护被启用-工作得很好! 基本上,只要一切都在屏幕上进行,一切都可以正常工作。 现在假设我们保持与上面相同的场景,但将步骤2更改为:

同上 我创建了一个计时报警管理器,在10分钟后锁定屏幕。屏幕在5分钟后关闭,我仍然在日志中看到警报在10分钟后正确关闭并重新启用键盘防护。但是,当我点击电源按钮之后,我仍然可以进入应用程序而不会遇到锁屏。如果我单击电源按钮或等待屏幕再次关闭,那么我将遇到锁定屏幕。 这似乎向我表明,重新启用键盘护卫只有在屏幕再次打开后才会生效,而您无法在屏幕关闭时启用它。是我错了还是有别的办法? 我想能够踢用户回到锁屏幕,即使代码重新启用锁防护,而屏幕关闭

谢谢

答案是使用:

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, this.getClass().getSimpleName());
wl.acquire();

在重新启用键盘保护之前

Nice one-这看起来像是我遇到的类似问题的解决方案。您是否在重新启用键盘保护后释放唤醒锁?