获取扫码枪扫码的内容:
String barcode ="";
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if(event.getAction()==KeyEvent.ACTION_DOWN){
Log.e(TAG,"dispatchKeyEvent: "+event.toString());
char pressedKey = (char) event.getUnicodeChar();
barcode += pressedKey;
}
if (event.getAction()==KeyEvent.ACTION_DOWN && event.getKeyCode() == KeyEvent.KEYCODE_ENTER) {
Toast.makeText(getApplicationContext(),
"barcode--->>>" + barcode, Toast.LENGTH_LONG)
.show();
qrEditText.setText(barcode);
barcode="";
}
return super.dispatchKeyEvent(event);
}
参考网址:
下面大哥的评论
另外,扫码枪扫描到内容,会自动换行,有个KEYCODE_ENTER事件,在有些机型上,可能会触发点击事件。把焦点设置到一个没设置点击事件的控件上即可。
获取的扫码枪内容,里面还会掺杂着一些乱码,但是在输入框显示不出来,如果直接把内容拿去匹配一些东西,可能会出错。这里将内容结果过滤一下:
String result = barcode.replaceAll("[^\x20-\x7F]+", "");
网友评论