我使用Android PDA和条形码扫描仪。发现扫描的密钥有keyCode:301。现在我只需要在按下(物理键盘)按钮时扫描条形码。我需要建议如何做到这一点。因为我的代码不能正常工作。原因可能是密钥按下,keyCode只接受该keyCode的char。但是,我当前的代码打印条形码中每个数字的双倍值。我该如何解决这个问题?
@Override
public boolean dispatchKeyEvent(KeyEvent e) {
Log.e(TAG, String.valueOf(e.getKeyCode()));
// int hScan = 301;
if((e.getAction()==KeyEvent.ACTION_DOWN) && (e.getKeyCode() != KeyEvent.KEYCODE_ENTER) &&(e.getKeyCode() == 301) )
{
System.out.println("Počelo skeinrajje");
}
pressedKey = (char) e.getUnicodeChar();
barcode += pressedKey;
if (e.getAction()==KeyEvent.ACTION_UP && e.getKeyCode() == KeyEvent.KEYCODE_ENTER ) {
Toast.makeText(getApplicationContext(),
"barcode--->>>" + barcode, Toast.LENGTH_LONG)
.show();
barcode ="";
}
return false;
}
它打印双值,因为你在按键和按键上添加了字符。选择一个,如果它的值立即返回。 (要么选择有效,要保持一致)。
另请注意,某些设备将发送ACTION_MULTIPLE,如果您无法控制扫描仪硬件选择,则还需要处理。