Как переопределить кнопку «громкость» на андроид

1

Я хотел бы переопределить кнопку "volume" на Android-телефоне. Например, Когда я нажимаю увеличение или уменьшение, громкость не изменяется, но только для печати слова.

  • 0
    посмотрите мой код, он работает, я уже проверил!
Теги:
button

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;
}

PROTIP: Если вы хотите, чтобы это поведение было связано со всеми вашими действиями, а не только с одним, просто сделайте это в MainActivity.java (или как бы вы его называть) и сделайте каждое другое действие расширенным MainActivity.

PROTIP 2: Не делайте этого, если это абсолютно необходимо, и вы уведомляете пользователя, что он работает именно так. Пользователи Android обычно жалуются, что не имеют общего поведения между приложениями.

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);
            }
        }
  • 0
    Таким образом, вы будете создавать тост, когда нажимаете кнопку увеличения или уменьшения громкости. KeyEvent.ACTION_UP - это не громкость, это действие, которое вы получаете при нажатии, а KeyEvent.ACTION_DOWN - это действие, которое вы получаете при отпускании.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню