2013-05-07 77 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

相關問題