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

时间:2014-06-15 00:03:21

标签: android keyguard

我试图让我的应用程序在经过x个时间后重新启用键盘锁(使用警报管理器)。 基本上,这就是我所做的:

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

  1. 我的应用程序启动,我禁用了键盘锁 - 效果很好!
  2. 我创建一个计时器(使用警报管理器)在3分钟后锁定屏幕,我在日志中看到警报在3分钟后熄灭,重新启用键盘锁的代码启动。屏幕在5分钟后熄灭,我点击电源按钮并启用了键盘锁 - 效果很好! 基本上,只要屏幕打开时一切都完成,一切都会正常工作。
  3. 现在让我们说我们保持与上面相同的方案,但将步骤2更改为:

    1. 与上述相同
    2. 我创建一个计时器(使用警报管理器)在10分钟后锁定屏幕。屏幕在5分钟后熄灭,我仍然在日志中看到10分钟后闹钟正常关闭并重新启用键盘锁。但是,当我在此之后单击电源按钮时,我仍然可以在不遇到锁定屏幕的情况下进入应用程序。如果我点击电源按钮或等待屏幕再次关闭,那么我将遇到锁屏。
    3. 这似乎告诉我,重新启用键盘只会在屏幕再次亮起后生效,而在屏幕关闭时无法启用它。我错了还是还有另外一种方法吗? 即使代码在屏幕关闭时重新启用锁定保护,我也希望能够将用户踢回锁定屏幕。

      谢谢!

1 个答案:

答案 0 :(得分:0)

答案是使用:

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

重新启用键盘锁之前