试图抓住Volume onKeyLongPress()无法正常工作

时间:2011-09-21 01:10:46

标签: android onkeypress

我正在尝试通过以下代码让我的应用程序对音量下调的长按键做出反应:

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()永远不会被调用。我的意图是单独保持音量降低和“短”按下,让我的应用程序对长按音量的反应不同 任何人都可以指出我缺少的东西吗?

1 个答案:

答案 0 :(得分:13)

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

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
        event.startTracking();
        return true;
    }
    return super.onKeyDown(keyCode, event);
}