我希望用戶能夠長按音量提高硬件按鈕以跳過歌曲,並在短按下執行常規音量提升操作。如何捕獲Longpress並在KEYCODE_VOLUME_UP上調用標準操作?
我可以區分兩者(我發現this solution,處理onKeyDown,onKeyLongPress和onKeyUp之間的標誌),但我想知道如果我仍然可以在按下音量增加按鈕時調用標準/超級動作。 我似乎無法弄清volumeUp動作何時被調用(在onKeyDown-或onKeyUp-事件中)以及在哪裏調用它。
或者我應該只寫我自己的功能來改變音量?
謝謝。
我的代碼:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) {
event.startTracking();
if (bLong) {
bShort = false;
return true;
} else {
bShort = true;
bLong = false;
return true;
}
}
return super.onKeyDown(keyCode, event);
}
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) {
if (bShort) {
bShort = false;
bLong = false;
if (mp != null) {
//HERE IS WHERE I WANT TO CALL THE VOLUME-UP ACTION
}
return true;
}
}
return super.onKeyUp(keyCode, event);
}
@Override
public boolean onKeyLongPress(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) {
if (bRunning && mp != null) {
playNextSong();
}
bShort = false;
bLong = false;
return true;
}
return super.onKeyLongPress(keyCode, event);
}
你解決了嗎?我正在嘗試開發一個應用程序來跳過帶有音量按鈕的曲目。你能幫我嗎? – 2014-07-24 14:47:19