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

Mar*_*cus 6 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);
}
Run Code Online (Sandbox Code Playgroud)

但是,它只onKeyPress()会使一堆事件发生故障,而且onKeyLongPress()永远不会被调用.我的目的是让音量降低,单独"短"按下,让我的应用程序对长按音量做出不同的反应.
任何人都可以指出我错过了什么吗?

Cra*_*g B 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);
}
Run Code Online (Sandbox Code Playgroud)