2015-12-22 118 views

回答

1

这是重复的从How to integrate barcode scanner with android application?,不一样的,但也许有助于

重要!在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); 
}