在我的应用程序中,我覆盖了volume up
和volume down
键。问题是,当用户点击这两个键中的一个时,播放声音。我想以某种方式禁用/静音此声音。音量键单击时禁用声音
这里是我的代码片段:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_VOLUME_DOWN: {
// do something when user click volume down key
return true;
}
case KeyEvent.KEYCODE_VOLUME_UP: {
// do something when user click volume up key
return true;
}
}
return super.onKeyDown(keyCode, event);
}
使用'dispatchKeyEvent',您可以检测按钮何时按下,但无法检测按钮位置(上或下)。在我的例子中,我使用了'onKeyDown'。这种方法不会消除声音,所以我必须发挥无限的声音。 – Da2da2
不,在我的示例中,您可以看到keyCode并以相同的方式使用它。它的作品,我在我的应用程序中使用这种方法。 –
我并不是说你的方法行不通,这是正常的,但不是在我的情况下。我想按照我说的检测按钮位置** ** ** ** ** ** **时的位置。如果我按下一个按钮(例如'KEYCODE_VOLUME_UP')一次,'dispatchKeyEvent'将被调用两次,如果我用'onKeyDown'和'onKeyUp'来执行,它们将一个接一个地开始,然后给我更详细的按钮当前状态的信息。 – Da2da2