2016-07-22 59 views
1

我有一個物理條形碼掃描器,我想在應用中獲得它的輸入,即條形碼,而不需要專注於EditTextandroid get條形碼掃描器輸入不帶edittext

我嘗試在我的Activity中添加KeyListener。但是,它沒有實施任何方法(onKeyUp,onKeyDown等)。

然後我添加了dispatchKeyEvent,它工作,但永遠不會被稱爲條碼長度的倍數。相反,在讀取條形碼之前,我認爲一些隨機button從條形碼掃描儀獲得焦點。

String barcode = ""; 

@Override 
public boolean dispatchKeyEvent(KeyEvent e) { 
    char pressedKey = (char) e.getUnicodeChar(); 
    barcode += pressedKey; 
    if (e.getKeyCode() == KeyEvent.KEYCODE_ENTER) { 
     Toast.makeText(getApplicationContext(), "barcode--->>>" + barcode, Toast.LENGTH_LONG) 
       .show(); 
    } 

    return super.dispatchKeyEvent(e); 
} 

我見過的做出來有幾個問題,但沒有人真的給了一個具體的答案。

+0

我想要真正解決這個問題,你需要一些來自條形碼掃描儀的文檔 - 它應該發送到你的應用程序到底是什麼?它是模擬鍵盤(通常要做的事)還是其他的東西?設備文檔中的任何其他提示? – GreyBeardedGeek

+0

檢索了文檔,但沒有找到任何內容。我用'EditText'測試了它,我唯一的結論是,在發送條形碼號碼之後,它會發出一個「ENTER」 – XeniaSis

回答

1

e.getCharacters()應該爲您提供完整的條形碼。 這對我的作品與嵌入式二維條碼讀取器的PL-40L設備上,運行的是Android 5.1 dispatchKeyEvent(KeyEvent e而)被觸發一次,每次讀取條碼,而不是在條形碼 希望每個角色這有助於