android讀取掃碼模組數(shù)據(jù)的方法
更新時間:2021年09月28日 11:40:49 作者:蝦皮條
這篇文章主要為大家詳細介紹了android讀取掃碼模組數(shù)據(jù)的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了android讀取掃碼模組數(shù)據(jù)的具體代碼,供大家參考,具體內(nèi)容如下
android讀取掃碼模組數(shù)據(jù) **在dispatchKeyEvent方法中承接讀取的數(shù)據(jù)**
在dispatchKeyEvent方法中承接讀取的數(shù)據(jù)
private StringBuilder mScanCodeBuilder = new StringBuilder();
@Override
public boolean dispatchKeyEvent(@NonNull KeyEvent event) {
LogUtil.d(TAG, "dispatchKeyEvent " + event.getAction() + ", " + event.getKeyCode());
checkLetterStatus(event);//判斷大小寫字母
if (event.getAction() == KeyEvent.ACTION_DOWN) {
mScanCodeBuilder.append(getInputCode(event));
if (event.getKeyCode() == KeyEvent.KEYCODE_ENTER) {
//若為回車鍵,直接返回
String scanResult = mScanCodeBuilder.toString();
mScanCodeBuilder.setLength(0);
LogUtil.d(TAG, "dispatchKeyEvent, " + scanResult);
String scanResults = scanResult.replace(" ", "");
} else {
//延遲post,若500ms內(nèi),有其他事件
mHandler.removeCallbacks(mScanningFishedRunnable);
mHandler.postDelayed(mScanningFishedRunnable, 500);
}
return true;
}
return super.dispatchKeyEvent(event);
}
判斷大小寫字母
private void checkLetterStatus(KeyEvent event) {
int keyCode = event.getKeyCode();
if (keyCode == KeyEvent.KEYCODE_SHIFT_RIGHT || keyCode == KeyEvent.KEYCODE_SHIFT_LEFT) {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
//按著shift鍵,表示大寫
mCaps = true;
} else {
//松開shift鍵,表示小寫
mCaps = false;
}
}
}
讀取字符方法
private char getInputCode(KeyEvent event) {
int keyCode = event.getKeyCode();
char aChar;
if (keyCode >= KeyEvent.KEYCODE_A && keyCode <= KeyEvent.KEYCODE_Z) {
//字母
aChar = (char) ((mCaps ? 'A' : 'a') + keyCode - KeyEvent.KEYCODE_A);
} else if (keyCode >= KeyEvent.KEYCODE_0 && keyCode <= KeyEvent.KEYCODE_9) {
//數(shù)字
aChar = (char) ('0' + keyCode - KeyEvent.KEYCODE_0);
} else {
//符號
switch (keyCode) {
case KeyEvent.KEYCODE_GRAVE:
aChar = '`';
break;
case KeyEvent.KEYCODE_COMMA:
aChar = ',';
break;
case KeyEvent.KEYCODE_APOSTROPHE:
aChar = '\'';
break;
case KeyEvent.KEYCODE_POUND:
aChar = '#';
break;
case KeyEvent.KEYCODE_STAR:
aChar = '*';
break;
case KeyEvent.KEYCODE_PERIOD:
aChar = '.';
break;
case KeyEvent.KEYCODE_MINUS:
aChar = mCaps ? '_' : '-';
break;
case KeyEvent.KEYCODE_SLASH:
aChar = '/';
break;
case KeyEvent.KEYCODE_BACKSLASH:
aChar = mCaps ? '|' : '\\';
break;
case KeyEvent.KEYCODE_EQUALS:
aChar = '=';
break;
case KeyEvent.KEYCODE_SEMICOLON:
aChar = ';';
break;
case KeyEvent.KEYCODE_PLUS:
aChar = '+';
break;
case KeyEvent.KEYCODE_AT:
aChar = '@';
break;
case KeyEvent.KEYCODE_LEFT_BRACKET:
aChar = '[';
break;
case KeyEvent.KEYCODE_RIGHT_BRACKET:
aChar = ']';
break;
default:
aChar = ' ';
break;
}
}
Log.d(TAG, "char" + aChar);
return aChar;
}
延遲500毫秒相關
private Handler mHandler = new Handler(this);
private final Runnable mScanningFishedRunnable=new Runnable() {
@Override
public void run() {
}
};
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Android獲取手機聯(lián)系人電話號碼并返回結(jié)果
這篇文章主要為大家詳細介紹了Android獲取手機聯(lián)系人電話號碼并返回結(jié)果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-11-11
android完美實現(xiàn) 拍照 選擇圖片 剪裁等代碼分享
本文給大家分享了2個安卓實現(xiàn)實現(xiàn) 拍照 選擇圖片 剪裁等的代碼,都是從正式項目中提取出來了,非常實用,有需要的小伙伴可以參考下。2016-01-01
Android關于SeekBar無法點擊到最大值問題解決方法記錄(推薦)
這篇文章主要介紹了Android關于SeekBar無法點擊到最大值問題解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-04-04
Android自定義textview實現(xiàn)豎直滾動跑馬燈效果
這篇文章主要為大家詳細介紹了Android自定義textview實現(xiàn)豎直滾動跑馬燈效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-06

