2011-03-11 107 views
7

只是想知道是否有人可以告訴我如何捕捉在Android的音量下鍵的長按鍵。如何在android中捕獲長按音量降低鍵?

闡述問題:

我想創造一個廣播接收器將接收卷長按鍵事件。 (沒有任何UI交互)。我知道這是可能的搜索按鈕。是否可用於音量鍵?

感謝

+0

細說更多信息,請。 – Sandy 2011-03-11 06:24:16

+0

我想創建一個BroadcastReceiver,它將接收音量長按鍵事件。 (沒有任何UI交互)。我知道這是可能的搜索按鈕。是否可用於音量鍵? - 謝謝 – kakopappa 2011-03-11 06:35:09

回答

7

可能是下面的代碼將幫助您:

@Override 
public boolean onKeyLongPress(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) { 
    // to your stuff here 
    return true; 
    } 
    return super.onKeyLongPress(keyCode, event); 
} 
+0

謝謝,是否有可能將KEYCODE_VOLUME_DOWN放入BroadcastReceiver?像<接收機機器人: 「MyReceiver 」名稱=> <意圖濾波器> <操作機器人:名稱=「 VOLUME長按HERE」/> kakopappa 2011-03-11 06:37:52

+0

我不認爲如果那是可能的 – ingsaurabh 2011-03-11 06:45:06

+0

嗨,我不知道什麼是你的要求,但你可以做的是使用上面,當你在任何活動中的事件,你可以創建一個自定義廣播音量鍵長期按下,並使用BL中的那個 – ingsaurabh 2011-03-14 07:01:25

2

請注意,要處理onKeyLongPress(),您應該跟蹤事件onKeyDown()。並覆蓋它們。 請注意以下例子。

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event){ 
    if(keyCode==KeyEvent.KEYCODE_VOLUME_UP){ 
     event.startTracking(); 
     return true; 
    } 
    return super.onKeyDown(keyCode,event); 
} 
@Override 
public boolean onKeyLongPress(int keyCode,KeyEvent event){ 
    if(keyCode==KeyEvent.KEYCODE_VOLUME_UP){ 
     //Do your stuff here 
     return true; 
    } 
    return onKeyLongPress(keyCode,event); 
} 

另請注意,onKeyDown默認返回false。所以通過觸發onKeyDown(),音量不會增加。

0

嘗試使用此命令

亞行外殼輸入KeyEvent的--longpress KEYCODE_VOLUME_DOWN