首页 > 解决方案 > 从条形码扫描仪获取正确的输入

问题描述

我使用带有条码扫描仪的 Android PDA。发现扫描的key有keyCode:301。现在我只需要在按下那个(物理键盘)按钮时扫描条形码。我需要建议如何去做。因为我的代码不能正常工作。原因可能是用那个 keyCode 按下的键只需要那个 keyCode 的字符。但是,我当前的代码打印条形码中每个数字的双值。我该如何解决这个问题?

  @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;
    }

标签: android

解决方案


它打印双值,因为您要在键上和键下添加字符。选择一个,如果它的值立即返回。(任何一个选择都是有效的,只要保持一致)。

另请注意,某些设备会发送 ACTION_MULTIPLE,如果您无法控制扫描仪硬件选择,您也需要处理这些信息。


推荐阅读