2012年10月11日木曜日

Androidでボリュームキーのビープ音を消す

該当Activity内でdispatchKeyEvent(KeyEvent event)をOverrideします。

調べてみるとキーがUpするときにビープ音が呼ばれているようですので、
Up時にはtrueを返して以降の処理をさせないようにします。

@Override
public boolean dispatchKeyEvent(KeyEvent event) {
  
  switch(event.getKeyCode()) {
    
    case KeyEvent.KEYCODE_VOLUME_UP:
      if(event.getAction() == KeyEvent.ACTION_UP) {
        return true;
      }
      break;
    case KeyEvent.KEYCODE_VOLUME_DOWN:
      if(event.getAction() == KeyEvent.ACTION_UP) {
        return true;
      }
      break;
      
  }
  
  super.dispatchKeyEvent(event);
  
  return false;
}