1

我想重新定义安卓手机上的“音量”按钮。例如,当我按下增加或减少时,音量不会改变,而只会打印一个单词。

4

2 回答 2

2

只需像这样覆盖 OnKeyDown 方法:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {

    if(keyCode == KeyEvent.KEYCODE_VOLUME_UP){
       //Do whatever you want to do on Volume Up
       return true;
    } else if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN){
       //Do whatever you want to do on Volume Down
       return true
    }
    return false;
}

提示:如果您希望所有活动都具有这种行为,而不仅仅是一个,只需在 MainActivity.java(或您想要调用的任何内容)中执行此操作,并让所有其他 Activity 扩展 MainActivity。

PROTIP 2:除非绝对必要,否则不要这样做,并且通知用户它是这样工作的。Android 用户通常抱怨它在应用程序之间没有共同的行为。

于 2012-05-28T14:59:25.693 回答
2

您必须像这样覆盖 dispatchKeyEvent() 方法:

  @Override
    public boolean dispatchKeyEvent(KeyEvent event) {
        int action = event.getAction();
        int keyCode = event.getKeyCode();
            switch (keyCode) {
            case KeyEvent.KEYCODE_VOLUME_UP:
                if (action == KeyEvent.ACTION_UP) {
                    //TODO
                    Toast.makeText(this,"Your First Word",Toast.LENGTH_SHORT).show();
                }
                return true;
            case KeyEvent.KEYCODE_VOLUME_DOWN:
                if (action == KeyEvent.ACTION_DOWN) {
                    //TODO
                    Toast.makeText(this,"Your Second Word",Toast.LENGTH_SHORT).show();
                }
                return true;
            default:
                return super.dispatchKeyEvent(event);
            }
        }
于 2012-05-28T15:11:03.767 回答