1.添加全局变量:
private boolean isLongPressKey;//是否长按2.重写按下事件
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { switch (keyCode) { case KeyEvent.KEYCODE_VOLUME_UP: if (event.getRepeatCount() == 0) {//识别长按短按的代码 event.startTracking(); isLongPressKey = false; } else { isLongPressKey = true; } return true; return super.onKeyDown(keyCode, event); }
3.长按事件按下的监听,例如开始录音@Override public boolean onKeyLongPress(int keyCode, KeyEvent event) { switch (keyCode) { case KeyEvent.KEYCODE_VOLUME_UP: Toast.makeText(MainActivity.this, "长按按下", Toast.LENGTH_SHORT).show();//do your things;} return super.onKeyLongPress(keyCode, event);}3.监听长按松开事件.例如录音结束.@Override public boolean onKeyUp(int keyCode, KeyEvent event) { switch (keyCode) { case KeyEvent.KEYCODE_VOLUME_UP: if (isLongPressKey) { isLongPressKey = false; Toast.makeText(MainActivity.this, "长按松开", Toast.LENGTH_SHORT).show(); return true; } else { //do your things; } } return super.onKeyUp(keyCode, event); }