我们正在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.
我们可以做些什么来检测这种状态下的键输入?或者还有其他方法可以让盒子保持工作并关闭屏幕吗?
提前致谢!
答案 0 :(得分:0)
也许您可以将WakeLock与PARTIAL_WAKE_LOCK一起使用 - 允许屏幕关闭,您只需要尝试禁用事件。
顺便提一下,您要按下以唤醒设备的键是硬件密钥还是显示屏上的软件密钥?