1

我正在使用像蓝牙键盘一样的蓝牙条形码扫描仪,我想在我的用户扫描某些东西时处理按键,但我知道他可以将任何 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 .

任何的想法 ?

4

1 回答 1

1

尝试像这样使用dispatchKeyEvent

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

在 scanManager 类中,您应该执行以下操作:

public boolean handleDispatchKeyEvent(KeyEvent event) {
// handle the event
return true;
} 
于 2013-05-15T11:46:39.850 回答