最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android實現(xiàn)USB掃碼槍獲取掃描內(nèi)容

 更新時間:2021年09月28日 11:52:51   作者:騎馬打醬油  
這篇文章主要為大家詳細介紹了Android實現(xiàn)USB掃碼槍獲取掃描內(nèi)容,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

最近做了關(guān)于在Android設(shè)備上外接掃碼的項目,在此記錄一下關(guān)于Android USB掃碼槍獲取內(nèi)容的問題

首先我這邊使用是USB HID的掃碼槍,即插即用,只需要在界面上有一個帶有焦點的EditText ,就可以獲取掃碼槍掃描的內(nèi)容。

是不是感覺很簡單,但是今天我這里是講的是在沒有EditText 的情況下獲取掃碼槍掃描的內(nèi)容。

USB HID掃碼槍會將掃描出來的內(nèi)容轉(zhuǎn)化為鍵盤事件,對應(yīng)的就是Android中的KeyEvent事件,所以我們只需要在我們的activity中

重寫onKeyDown方法

@Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        checkLetterStatus(event);
        keyCodeToNum(keyCode);
        if (keyCode == KeyEvent.KEYCODE_ENTER && event.getAction() == KeyEvent.ACTION_DOWN) {
            Log.e("鍵盤事件", buffer.toString());
            buffer.delete(0, buffer.length());
            return true;
        }
 
        return false;
}

上面我們說了掃碼槍是響應(yīng)我們的鍵盤事件,所以當掃碼槍每掃描到一個字符的時候,就相當于按下了我們鍵盤上的對應(yīng)按鍵,也就是keyCode,因此我們只需要處理這個keyCode就行了。

下面我把checkLetterStatus()檢查是否大小寫的方法跟keyCodeToNum()根據(jù)對應(yīng)的keycode轉(zhuǎn)換對應(yīng)的數(shù)字跟字母 

//檢查shift鍵
    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;
            }
        }
    }
    //根據(jù)keycode得到對應(yīng)的字母和數(shù)字
    private void keyCodeToNum(int keycode) {
        if (keycode >= KeyEvent.KEYCODE_A && keycode <= KeyEvent.KEYCODE_Z) {
            if (mCaps) {
                buffer.append(map.get(keycode).toUpperCase());
            } else {
                buffer.append(map.get(keycode));
            }
 
        } else if ((keycode >= KeyEvent.KEYCODE_0 && keycode <= KeyEvent.KEYCODE_9)) {
            buffer.append(keycode - KeyEvent.KEYCODE_0);
        } else {
            //暫不處理特殊符號
        }
 
    }

上面的方法里面有個map,是用來存儲字母的

Map<Integer, String> map = new HashMap<>();        
        map.put(29, "a");
        map.put(30, "b");
        map.put(31, "c");
        map.put(32, "d");
        map.put(33, "e");
        map.put(34, "f");
        map.put(35, "g");
        map.put(36, "h");
        map.put(37, "i");
        map.put(38, "g");
        map.put(39, "k");
        map.put(40, "l");
        map.put(41, "m");
        map.put(42, "n");
        map.put(43, "0");
        map.put(44, "p");
        map.put(45, "q");
        map.put(46, "r");
        map.put(47, "s");
        map.put(48, "t");
        map.put(49, "u");
        map.put(50, "v");
        map.put(51, "w");
        map.put(52, "x");
        map.put(53, "y");
        map.put(54, "z");

最后用一個StringBuffer 來接收處理過的數(shù)據(jù)。大概就這樣吧!

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

相關(guān)文章

  • Android App中ListView仿QQ實現(xiàn)滑動刪除效果的要點解析

    Android App中ListView仿QQ實現(xiàn)滑動刪除效果的要點解析

    這篇文章主要介紹了Android App中ListView仿QQ實現(xiàn)滑動刪除效果的要點解析,重點是要判斷手勢按下的位置坐標,需要的朋友可以參考下
    2016-04-04
  • Android利用SoundPool實現(xiàn)音樂池

    Android利用SoundPool實現(xiàn)音樂池

    這篇文章主要為大家詳細介紹了Android利用SoundPool實現(xiàn)音樂池,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • Android如何判斷當前點擊位置是否在圓的內(nèi)部

    Android如何判斷當前點擊位置是否在圓的內(nèi)部

    這篇文章主要為大家詳細介紹了Android如何判斷當前點擊位置是否在圓的內(nèi)部,解析拖動圓形控件之內(nèi)響應(yīng)觸摸事件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • Android開發(fā)實現(xiàn)長按返回鍵彈出關(guān)機框功能

    Android開發(fā)實現(xiàn)長按返回鍵彈出關(guān)機框功能

    這篇文章主要介紹了Android開發(fā)實現(xiàn)長按返回鍵彈出關(guān)機框功能,涉及Android針對長按事件的響應(yīng)與處理相關(guān)操作技巧,需要的朋友可以參考下
    2017-09-09
  • Android音樂播放器簡單實現(xiàn)案例

    Android音樂播放器簡單實現(xiàn)案例

    我們平時長時間打代碼的時候肯定會感到疲憊和乏味,這個時候一邊播放自己喜歡的音樂,一邊繼續(xù)打代碼,心情自然也愉快很多。音樂帶給人的聽覺享受是無可比擬的,動聽的音樂可以愉悅?cè)说纳硇?,讓人更加積極地去熱愛生活,這篇文章主要介紹了Android音樂播放器簡單實現(xiàn)案例
    2022-12-12
  • logcat命令使用方法和查看android系統(tǒng)日志緩沖區(qū)內(nèi)容的方法

    logcat命令使用方法和查看android系統(tǒng)日志緩沖區(qū)內(nèi)容的方法

    這篇文章主要介紹了logcat命令使用方法和查看android系統(tǒng)日志緩沖區(qū)內(nèi)容的方法,需要的朋友可以參考下
    2014-02-02
  • Android編程實現(xiàn)獲取所有傳感器數(shù)據(jù)的方法

    Android編程實現(xiàn)獲取所有傳感器數(shù)據(jù)的方法

    這篇文章主要介紹了Android編程實現(xiàn)獲取所有傳感器數(shù)據(jù)的方法,涉及Android針對傳感器Sensor相關(guān)操作技巧,需要的朋友可以參考下
    2017-06-06
  • Android截屏分享功能

    Android截屏分享功能

    最近項目經(jīng)理交給我一個任務(wù),要求實現(xiàn)android截屏功能,包括Android截屏獲取圖片、將圖片保存到本地、通知系統(tǒng)相冊更新、通過微信、QQ、微博分享截屏圖片。小編把實現(xiàn)思路分享到腳本之家平臺,需要的朋友參考下
    2017-12-12
  • Android聊天工具基于socket實現(xiàn)

    Android聊天工具基于socket實現(xiàn)

    這篇文章主要介紹了基于socket實現(xiàn)的一個簡單的Android聊天工具,實現(xiàn)方法簡單,具有一定的參考價值,感興趣的朋友可以參考一下
    2016-02-02
  • Android組件banner實現(xiàn)左右滑屏效果

    Android組件banner實現(xiàn)左右滑屏效果

    這篇文章主要為大家詳細介紹了Android組件banner實現(xiàn)左右滑屏效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-10-10

最新評論

和龙市| 鹤壁市| 拜城县| 德兴市| 松滋市| 上犹县| 平邑县| 太原市| 师宗县| 关岭| 鄂托克前旗| 盘锦市| 盘锦市| 永胜县| 达州市| 射阳县| 阿坝| 罗山县| 安庆市| 调兵山市| 榆林市| 梅州市| 张家口市| 揭东县| 嘉祥县| 招远市| 北安市| 章丘市| 涟水县| 五莲县| 邯郸市| 尼玛县| 阿勒泰市| 东源县| 都江堰市| 太仆寺旗| 德庆县| 拉孜县| 龙口市| 彰化市| 榕江县|