欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

android實(shí)現(xiàn)掃碼槍功能

 更新時(shí)間:2021年09月29日 08:28:21   作者:cuncaojin  
這篇文章主要為大家詳細(xì)介紹了android實(shí)現(xiàn)掃碼槍功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

掃碼槍掃碼效果等同于鍵盤(pán)錄入,會(huì)回調(diào)dispatchKeyEvent鍵盤(pán)按下事件。

開(kāi)發(fā)環(huán)境:有線掃碼槍?zhuān)С侄S碼

代碼

1. 接收數(shù)據(jù)

 /**
     * 掃碼槍掃碼處理
     */
    @Override
    public boolean dispatchKeyEvent(KeyEvent event) {
        if (event.getAction() == KeyEvent.ACTION_DOWN) {
            int keyCode = event.getKeyCode();
            char aChar = (char) event.getUnicodeChar();
            if (aChar != 0) {
                mStringBufferResult.append(aChar);
            }
            mHandler.removeCallbacks(mScanningFishedRunnable);
            //若為回車(chē)鍵,直接返回
            if (keyCode == KeyEvent.KEYCODE_ENTER) {
                mHandler.post(mScanningFishedRunnable);
            } else {
                //延遲post,若500ms內(nèi),有其他事件
                mHandler.postDelayed(mScanningFishedRunnable, 500L);
            }
            return true;
        }
        return super.dispatchKeyEvent(event);
    }

2. 處理數(shù)據(jù)

 /**
 * 二維碼信息對(duì)象
 */
   private QRCode qrCodeBean;
   /**
   * 二維碼信息原始數(shù)據(jù)容器
   */
   private StringBuilder mStringBufferResult = new StringBuilder();
   private Handler mHandler = new Handler();
   
   private Runnable mScanningFishedRunnable = new Runnable() {
        @Override
        public void run() {
            scanOk = false;
            String qrcode = mStringBufferResult.toString();
            if (!TextUtils.isEmpty(qrcode)) {
                // 掃碼確定參數(shù)
                Gson gson = new Gson();
                try {
                    qrCodeBean = gson.fromJson(qrcode, QRCode.class);
                    // 你的代碼...
                    // 如果要支持中文,數(shù)據(jù)用可以URLEncoder/URLDecoder編解碼
                } catch (JsonSyntaxException e) {
                    // 解析失敗...
                } catch (UnsupportedEncodingException e) {
                    // 解碼失敗...
                } finally {
                    mStringBufferResult.setLength(0);
                }
            }
        }
    };

參考:Android設(shè)備藍(lán)牙連接掃描槍獲取掃描內(nèi)容

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論