2012-05-28 3 views
1

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

+0

посмотреть мой код работает я уже опробовал !! –

ответ

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' - это действие, которое вы получаете при выпуске. – razielsarafan

 Смежные вопросы

  • Нет связанных вопросов^_^