如果密钥来自特定键盘,如何防止将其插入EditText中

时间:2013-04-15 14:26:46

标签: android barcode-scanner

我正在使用蓝牙条码扫描器,就像蓝牙键盘一样,我想在我的用户扫描时处理键,但我知道他可以将任何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中。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

尝试使用dispatchKeyEvent之类的内容:

@Override
public boolean dispatchKeyEvent(KeyEvent event) {
    return scanManager.handleDispatchKeyEvent(event);
}

在scanManager类中,你应该做类似的事情:

public boolean handleDispatchKeyEvent(KeyEvent event) {
// handle the event
return true;
}