某些情况下需要进行物理按键操作时,正常调用onKeyUp()方法即可实现,但此方法会和输入法的输入冲突。
如物理按键为3键,在输入法输入3时会调用到物理按键的onKeyUp()方法。
/---------------------分割线---------------------/
这种情况下event.getDeviceId()可作为参考依据:
使用物理按键时event.getDeviceId()的结果为4,使用输入法输入则是另一个结果。
//区分物理按键和虚拟按键
if(event.getDeviceId() == 4){
if (keyCode == KeyEvent.KEYCODE_3){
detectDataFristLine(findViewById(R.id.test));
return true;
}else if (keyCode == KeyEvent.KEYCODE_6){
//计时器
startActivityForResult(testActivity.class,0);
}
}
return super.onKeyUp(keyCode, event);