拦截音量键的事件用于app里的操作,在我的三星手机和华为手机测试,单独拦截一种,都没法屏蔽音量的操作。
最后,总结,将业务功能关联到一种,比如按键释放状态。并且拦截另一种,比如按键按下,里面不关联业务。
可在 Activity 里如下写,与状态事件并列。onKeyDown 不是复写方法(即不需要 @Override)的。
(这段代码是我的 SQLite分页程序中拷贝来的,验证过的。)
@Override public boolean onKeyUp(int keyCode, KeyEvent event) { if(keyCode== KeyEvent.KEYCODE_VOLUME_DOWN){ datatitle.setText("Key Down"); getTotalages(); if(totalpages>currentpage){ currentpage++; showdata(); } return true; }else if(keyCode==KeyEvent.KEYCODE_VOLUME_UP) { datatitle.setText("Key Up"); if(currentpage>1){ currentpage--; } showdata(); return true; } else return super.onKeyUp(keyCode, event); } public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-generated method stub if(keyCode==KeyEvent.KEYCODE_VOLUME_DOWN){ //什么都不做 return true; } else if(keyCode==KeyEvent.KEYCODE_VOLUME_UP) { //什么都不做 return true; }
else return super.onKeyDown(keyCode, event); }