一、简介
一般手机都有 “音量上键”、“音量下键”,耳机线上通常也有 “上、中、下键”。有时我们会需要用到这些键来执行一些特殊的任务,例如 拍照,那么该怎么做呢?
步骤就是:
- 监听按键的事件
- 并执行指定的任务
最方便的方式是在 Activity 的 onKeyDown(int keyCode, KeyEvent event)
或者 onKeyUp(int keyCode, KeyEvent event)
方法中获取到按键事件,并根据不同的 keyCode
执行不同的任务。另外一种方式便是使用广播来接收按键事件。
二、实现
public class MainActivity extends AppCompatActivity {
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
Log.d(TAG, "onKeyDown keyCode: " + keyCode);
switch (keyCode) {
case KeyEvent.KEYCODE_VOLUME_UP: // 音量上键
break;
case KeyEvent.KEYCODE_VOLUME_DOWN: // 音量下键
// do something. eg: capture
break;
case KeyEvent.KEYCODE_MEDIA_PREVIOUS: // 耳机上键
break;
case KeyEvent.KEYCODE_MEDIA_PAUSE: // 单按键耳机的按键或三按键耳机的中间按键
break;
case KeyEvent.KEYCODE_HEADSETHOOK: // 与KEYCODE_MEDIA_PAUSE通常相同,具体看驱动定义
break;
case KeyEvent.KEYCODE_MEDIA_NEXT: // 耳机下键
break;
default:
break;
}
return super.onKeyDown(keyCode, event);
}
}
得到监听事件后,具体做什么操作都是可以自定义的。