2017年2月24日 星期五

[Android] EditText讀取Bar Code Scanner的內容

程式碼如下


 @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        //only catch need char (different with every one) 
        char unicodeChar = (char) event.getUnicodeChar();
        if (((keyCode >= KeyEvent.KEYCODE_0 && keyCode <= KeyEvent.KEYCODE_Z) || unicodeChar == '-') )
        {
            isInput = true;
            unicodeChar = (char) event.getUnicodeChar();
            sb.append(unicodeChar);
            //wait a delay time 500ms for read all data ( adjustment for your bar code scanner)
            if (isInput) {
                mHandler.postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        if (sb.length() != 0) {
                            String str = sb.toString();
                            //save your String to UI Component
                        isInput = false;
                    }
                }, DELAY);
            }
        }

        return false;
    }

我們透過OTG連接條碼掃描器,經過測試,有以下個注意事項。

(1)不是每台平板都支援OTG。

(2)不同平板對於條碼掃出來的結果可能會有差異。

2.1 有些平板,掃描出來的內容顯示到EditText極慢,像單手打一樣,難以判斷是輸入完成沒,或是出現異常的換行符號,掃描一組條碼可能出現多行換行。

2.2 OTG供電可能不穩定,導致條碼機異常。

(3)OTG接頭不要買線太細的,容易供電不足,小小一個轉換頭也不賴。

經驗分享,使用前請進行測試 。

(4)其實你可以以條碼的檢查碼進行確認是否己讀取完畢,不過此案用的這支條碼掃描器是可以自己識別多種格式條碼的,所以用這種檢查方式比較不適合 。

沒有留言:

張貼留言