我有SmartMouse安卓应用的源代码。 我想用屏幕按钮改变音量键的功能。 我有C语言编程的基础知识但不了解java。 我应该在代码中搜索哪一部分?
这可能是一个蹩脚的问题,但我非常需要这个。
答案 0 :(得分:3)
你必须抓住这里提到的事件:Android - Volume Buttons used in my application
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
int action = event.getAction();
int keyCode = event.getKeyCode();
switch (keyCode) {
case KeyEvent.KEYCODE_VOLUME_UP:
if (action == KeyEvent.ACTION_UP) {
//TODO
}
return true;
case KeyEvent.KEYCODE_VOLUME_DOWN:
if (action == KeyEvent.ACTION_DOWN) {
//TODO
}
return true;
default:
return super.dispatchKeyEvent(event);
}
}
dispatchKeyEvent不仅会调用音量键,还会捕获所有键事件,因此您必须:
关键是dispatchKeyEvent在系统执行任何其他方法之前被调用,因此您可以拦截事件