2013-05-07 87 views
0

我们正在Android 4.0.4机顶盒上运行一个应用程序,我们想按一些按键关闭屏幕(通过HDMI连接)并保持该框运行。我们正在做这样的:允许Android在屏幕关闭的情况下接收关键事件

/* 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

也许你可以使用WakeLock和PARTIAL_WAKE_LOCK - 屏幕允许关闭,你只需要尝试,如果事件被禁用。

顺便说一下,您想要按键唤醒设备的键是显示器上的硬件键还是软键?

+0

谢谢,但我认为我们已经在使用PARTIAL_WAKE_LOCK,我是否正确使用它?顺便说一句,这是遥控器上的硬件键。 – Asususer 2013-05-07 05:39:01