android實(shí)現(xiàn)掃碼槍功能
掃碼槍掃碼效果等同于鍵盤(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)文章
Android獲取觸摸手勢(shì)實(shí)現(xiàn)左右滑動(dòng)
這篇文章主要為大家詳細(xì)介紹了Android獲取觸摸手勢(shì)實(shí)現(xiàn)左右滑動(dòng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05Android實(shí)現(xiàn)二級(jí)列表購(gòu)物車(chē)功能
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)二級(jí)列表購(gòu)物車(chē)功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10安卓(Android)動(dòng)態(tài)創(chuàng)建多個(gè)按鈕并添加監(jiān)聽(tīng)事件
本文主要介紹Android動(dòng)態(tài)創(chuàng)建多個(gè)按鈕并給每個(gè)按鍵添加監(jiān)聽(tīng)事件,在做Android項(xiàng)目會(huì)經(jīng)常遇到的,希望對(duì)需要用到的同學(xué)有所幫助2016-07-07ListView嵌套GridView使用詳解及注意事項(xiàng)
ListView嵌套GridView即ListView的每個(gè)Item中都包含一個(gè)GridView;需要注意的是由于ListView和GridView都是可滑動(dòng)的控件. 所以需要自定義GridView,重寫(xiě)其onMeasure()方法2013-06-06android 實(shí)現(xiàn)按鈕浮動(dòng)在鍵盤(pán)上方的實(shí)例代碼
這篇文章主要介紹了android 實(shí)現(xiàn)按鈕浮動(dòng)在鍵盤(pán)上方,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03Android手機(jī)衛(wèi)士之綁定sim卡序列號(hào)
這篇文章主要介紹了Android手機(jī)衛(wèi)士之綁定sim卡序列號(hào)的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10Android為按鈕控件綁定事件的五種實(shí)現(xiàn)方式
本篇文章主要是介紹了Android為按鈕控件綁定事件的五種實(shí)現(xiàn)方式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2016-11-11android基礎(chǔ)總結(jié)篇之九:Intent應(yīng)用詳解
這篇文章主要介紹了android基礎(chǔ)總結(jié)篇之九:Intent應(yīng)用詳解,有需要的可以了解一下。2016-11-11Flutter實(shí)現(xiàn)支付寶集五福手畫(huà)福字功能
支付寶一年一度的集五?;顒?dòng)又開(kāi)始了,其中包含了一個(gè)功能就是手寫(xiě)福字,還包括撤銷(xiāo)一筆,清除重寫(xiě),保存相冊(cè)等。本文將介紹如何使用Flutter實(shí)現(xiàn)這些功能,感興趣的可以了解一下2022-01-01???????Android?H5通用容器架構(gòu)設(shè)計(jì)詳解
這篇文章主要介紹了???????Android?H5通用容器架構(gòu)設(shè)計(jì)詳解,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-09-09