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

