2010-03-02 29 views

回答

31

我想象它看起来是这样的:

public boolean onKeyDown(int keyCode, KeyEvent event) 
{ 
    if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN || keyCode == KeyEvent.KEYCODE_VOLUME_UP) { 
     // Do your thing 
     return true; 
    } else { 
     return super.onKeyDown(keyCode, event); 
    } 
} 
+5

甜。你必须“回归真实”;在做你的事情后,抑制手机的默认音量行为。 – 2010-03-02 23:11:55

+7

还要完全禁止默认行为,您还应该捕获事件并在onKeyUp()覆盖中返回true。 – 2010-03-03 11:08:29

+3

或者您可以重写dispatchKeyEvent(KeyEvent事件)方法。 – 2010-10-28 16:49:19

24
在您的活动

@Override 
    public boolean dispatchKeyEvent(KeyEvent event) { 
     int keyCode = event.getKeyCode(); 
     switch (keyCode) { 
     case KeyEvent.KEYCODE_VOLUME_UP: 
     case KeyEvent.KEYCODE_VOLUME_DOWN: 
      return true; 
     default: 
      return super.dispatchKeyEvent(event); 
     } 
    } 
+3

这是正确的答案。使用onKeyDown或onKeyUp仍然会提供更改音量的默认声音。 – korbes 2014-08-27 01:16:19

相关问题