6

我试图让我的应用程序使用以下代码对长按音量下的按键做出反应:

public boolean onKeyLongPress(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
        Log.w("myApp", "LONG PRESS");
    }
    return super.onKeyLongPress(keyCode, event);
}

但是,它只会发送一堆onKeyPress()降低音量的事件,并且onKeyLongPress()永远不会被调用。我的意图是让音量上下“短”按单独,让我的应用程序对音量长按做出不同的反应。
谁能指出我错过了什么?

4

1 回答 1

17

你快到了。您需要在 onKeyPress 处理程序中检测到相同的键事件并开始跟踪它,以便长按可以工作。这是您需要的代码:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
        event.startTracking();
        return true;
    }
    return super.onKeyDown(keyCode, event);
}
于 2011-11-02T19:01:53.433 回答