屏幕关闭时,允许Android接收关键事件

时间:2013-05-07 05:28:06

标签: android

我们正在Android 4.0.4机顶盒上运行应用程序,我们想按一些键关闭屏幕(通过HDMI连接)并保持盒子运行。我们这样做:

/* Acquire Wake Lock */
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock lock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "Tag");
lock.acquire();

/* Turn OFF screen */
WindowManager.LayoutParams params = getWindow().getAttributes();
params.flags |= WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON;
params.screenBrightness = 0;
getWindow().setAttributes(params);

//lock.release(); /* box will go to sleep if lock released */

当我们按下键时,屏幕确实关闭,并且框似乎仍在运行。但是当我们试图在这种状态下再次按下键时,它就像:

I/InputDispatcher(  173): Dropped event because input dispatch is disabled.

我们可以做些什么来检测这种状态下的键输入?或者还有其他方法可以让盒子保持工作并关闭屏幕吗?

提前致谢!

1 个答案:

答案 0 :(得分:0)

也许您可以将WakeLock与PARTIAL_WAKE_LOCK一起使用 - 允许屏幕关闭,您只需要尝试禁用事件。

顺便提一下,您要按下以唤醒设备的键是硬件密钥还是显示屏上的软件密钥?