我写了一个简单的闹钟风格的应用程序,我在我的(越狱)Nook Simple Touch(又名 NST)上运行,在 Android 2.1 下。
当预定的闹钟时间到达时,我的应用程序需要唤醒 NST 并显示一页 HTML 内容。我使用 AlarmManager 在正确的时间获得回调,它似乎按预期工作——几乎。
当 NST 激活其锁屏模式(即它正在自动显示著名作家的漫画)时,会出现足够的空闲时间。我找不到一种程序化的方式来解除锁定屏幕,以便我的 HTML 内容可见。我可以看到我的警报回调例程在预期时间运行(通过 Eclipse 中的 LogCat 视图,在我使用 adb 重新连接到 NST 之后),并且在我用手指手动“拖动解锁”之后,我可以看到我的应用程序的窗口按预期更新,但我需要在警报事件发生时让文本变得可见,而不仅仅是在用户解锁设备之后。我尝试了下面显示的代码(基于其他 StackOverflow 答案),但没有帮助。
关于如何做到这一点的任何想法?(在技术上可行的一个解决方案是始终在我的窗口上设置 FLAG_KEEP_SCREEN_ON ,这样著名的作者锁定屏幕就不会首先出现,但这会使 NST 保持唤醒状态,因此它会很快耗尽电池,所以我想尽可能避免这种情况)
private void wakeUpTheScreen()
{
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);
}