2014-10-17 68 views
-3

我想开发一个应用程序,通过USB条形码扫描器读取条形码..我的问题是,我不知道如何通过应用程序访问这个条形码扫描器,并阅读值..我想知道如何检测条形码扫描仪和使用它..任何想法或链接将有助于我可以用来了解这些东西..我是新来的机器人..如何将条码扫描器与android应用程序集成?

+0

使用斑马线库.... – 2014-10-17 07:39:30

+0

我试图that..but它与相机仅.. – Akshay 2014-10-17 07:41:46

+0

的可能重复的工作[使用ZXing创建一个Android条码扫描应用程序](http://stackoverflow.com/questions/2050263/using-zxing-to-create-an-android-barcode-scanning-app) – 2Dee 2014-10-17 07:41:50

回答

0

假设你的USB条码扫描仪是键盘楔形模式(即当您扫描条形码时,就好像您将数字输入到活动窗口一样),那么您不必执行任何操作。只需将条形码插入迷你USB适配器并扫描即可。从onKeyDown事件中检索条码数据。

+0

谢谢你的帮助..我试试这个.. – Akshay 2014-10-17 08:44:51

+0

在4.x设备上它会“按下”任何随机按钮。不知道如何解决它:( – djdance 2016-07-19 16:13:38

+0

我在我的活动中使用textviews而不是按钮。 – 2016-07-20 02:37:41

1

终于我得到这个工作。

重要!在android 2.3上,你可以在OnKeyDown事件中捕获条形码,但在4.3中,你的真实扫描器将按任何聚焦的按钮,所以把代码放入dispatchKeyEvent并返回true。

某些按钮仍然会聚焦(选中,预先按下,突出显示,只有上帝知道它是什么),但新闻事件不会被解雇。如果有人知道如何避免这个问题(除自动对焦移动...)告诉我

@Override 
public boolean dispatchKeyEvent(KeyEvent event) { 

    //barcode scanner 
    int c=event.getUnicodeChar(); 
    //accept only 0..9 and ENTER 
    if ((c>=48 && c<=57) || c==10){ 
     if (event.getAction()==0) { 
      if (c >= 48 && c <= 57) 
       barcode += "" + (char) c; 
      else { 
       if (!barcode.equals("")) { 
        final String b = barcode; 
        barcode = ""; 
        new Thread(new Runnable() { 
         public void run() { 
          checkBarcode(b); 
          //there you get a string and compare it or store etc 
         } 
        }).start(); 
       } 
      } 
     } 
     return true; 
    } 
    return super.dispatchKeyEvent(event); 
} 
相关问题