我正在使用蓝牙条码扫描器,就像蓝牙键盘一样,我想在我的用户扫描时处理键,但我知道他可以将任何EditText聚焦在活动中,所以我想要检测他使用的键盘我的KeyEvent是这样的:
if KeyEvent.getDevice().getName().equals("Datalogic Scanner") //do stuff
else //let the edittext add the letter
并阻止编辑EditText,而是存储和处理扫描仪发送的值。
我尝试在我的活动中的dispatchKeyEvent中返回true, 我在我的活动中尝试在onKeyDown中返回true, 我尝试在EditText上的OnKeyListener中返回true并覆盖EditText类上的OnKeyDown,但没有任何效果,文本仍然插入到我的EditText中。
有什么想法吗?
答案 0 :(得分:1)
尝试使用dispatchKeyEvent之类的内容:
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
return scanManager.handleDispatchKeyEvent(event);
}
在scanManager类中,你应该做类似的事情:
public boolean handleDispatchKeyEvent(KeyEvent event) {
// handle the event
return true;
}