我想使用蓝牙条形码扫描仪读取条形码。我不想使用蓝牙键盘仿真(HID)模式,因为在扫描之前很难指向文本框。
我阅读了这个开发人员。必须使用端代码定界符(CR,LF等)收听写入事件。
如果您的蓝牙条形码扫描仪没有更改hid模式为SSP模式的开关*,则您无法与他联系。(*硬件或软件开关)
Android与HID Bluetooth(人接口设备)本地连接,不要让它们走:)。
所以,我解决了我的问题阅读和覆盖键盘事件。
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if (barCodeRadearIsOn && (event.getKeyCode() == KeyEvent.KEYCODE_ENTER || (event.getKeyCode() >= 7 && event.getKeyCode() <= 16))) {
if (event.getKeyCode() == KeyEvent.KEYCODE_ENTER) {
if (event.getAction() == KeyEvent.ACTION_UP){
Toast.makeText(context, barCode, Toast.LENGTH_LONG).show();
....... .......
barCode = "";
}
} else {
if (event.getAction() == KeyEvent.ACTION_UP){
barCode = barCode + (char)event.getUnicodeChar();
}
}
return true;
} else {
return super.dispatchKeyEvent(event);
}
}
注意:
- barcoderadearison-用户可以打开/关闭
- 此代码"截然"仅输入和数字字符从0到9。