从条形码扫描仪获得正确的输入

时间:2019-03-21 14:47:09

标签: android

我使用带条形码扫描仪的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;
    }

1 个答案:

答案 0 :(得分:0)

它打印双精度值,因为要在向上键和向下键上添加字符。选择一个,如果该值立即返回。 (这两种选择都是有效的,请保持一致)。

还请注意,某些设备会发送ACTION_MULTIPLE,如果您无法控制扫描仪的硬件选择,则还需要处理该问题。