Android - 我的应用程序中使用的音量按钮

Iul*_*iei 40 android

我需要使用音量按钮来控制应用程序中的变量参数.我Activity.onKeyDown按下按钮时会收到通知,但媒体音量也会增加.
当我按下音量键时,Android正在执行以下操作:

  1. 增加媒体/铃声音量
  2. 将事件传递给我的申请

有没有办法避免增加系统音量和仅为我的应用程序使用音量键?

yan*_*nko 104

您需要捕获所有操作:

@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_DOWN) {
                //TODO
            }
            return true;
        case KeyEvent.KEYCODE_VOLUME_DOWN:
            if (action == KeyEvent.ACTION_DOWN) {
                //TODO
            }
            return true;
        default:
            return super.dispatchKeyEvent(event);
        }
    }
Run Code Online (Sandbox Code Playgroud)


And*_*rew 12

接下来会更好,因为长按一下KeyEvent.KEYCODE_VOLUME_UP在上一个答案中不起作用.

@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_DOWN) {
                //TODO
            }
            return true;
        case KeyEvent.KEYCODE_VOLUME_DOWN:
            if (action == KeyEvent.ACTION_DOWN) {
                //TODO
            }
            return true;
        default:
            return super.dispatchKeyEvent(event);
    }
}
Run Code Online (Sandbox Code Playgroud)