2015-12-22 120 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); 
}