Android 連接藍牙掃碼器無輸入框的實現(xiàn)
Android 的APP 需要集成一個藍牙掃碼器, 特別的是,需要掃碼的地方是沒有輸入框的(EditText),不能通過直覺上理解的通過對EditText輸入事件進行監(jiān)聽處理,取得掃碼結(jié)果。并且設(shè)備也沒有提供SDK。
細想了一下, 藍牙掃碼器本質(zhì)應(yīng)該是個HID設(shè)備,相當(dāng)于藍牙鍵盤。而后豁然開朗。
每一次掃碼應(yīng)該會觸發(fā)按鍵事件,通過監(jiān)聽當(dāng)前Activity的按鍵事件,應(yīng)該可以實現(xiàn),無輸入框的情況下取得掃碼結(jié)果。
重載Activity中的dispatchKeyEvent實現(xiàn)按鍵監(jiān)聽。
@Override public boolean dispatchKeyEvent(KeyEvent event) { InputDevice inputDevice = event.getDevice(); if (inputDevice != null) { int keyboardType = event.getDevice().getKeyboardType(); String deviceName = event.getDevice().getName(); boolean isVirtual = event.getDevice().isVirtual(); //可以根據(jù)輸入設(shè)備信息判斷是否為特定掃碼器輸入 if (!isVirtual) { scannerHelper.onScanerInput(event); } } }
通常掃碼器在掃碼結(jié)果后會追加一個結(jié)束字符,我的這個設(shè)備默認為回車。 所以接收到回車可以認為一個掃碼結(jié)果“輸入”完成。
public class ScannerHelper { private String buffer =""; private MainOneActivity mainOneActivity; public ScannerHelper(MainOneActivity mainOneActivity){ this.mainOneActivity = mainOneActivity; } public void onScanerInput(KeyEvent event){ if(event.getKeyCode() == KeyEvent.KEYCODE_ENTER){ mainOneActivity.onScannerResult(buffer);//回調(diào)掃碼結(jié)果 buffer=""; }else{ if (event.getAction() == KeyEvent.ACTION_UP && event.isPrintingKey()){ buffer += (char)event.getUnicodeChar(); } } } }
測試OK。
到此這篇關(guān)于Android 連接藍牙掃碼器無輸入框的文章就介紹到這了,更多相關(guān)Android 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android System fastboot 介紹和使用教程
Fastboot是Android快速升級的一種方法,Fastboot的協(xié)議fastboot_protocol.txt在源碼目錄./bootable/bootloader/legacy下可以找到,本文給大家介紹Android System fastboot 介紹和使用教程,感興趣的朋友一起看看吧2024-01-01Android開發(fā)之自帶下載器DownloadManager的使用示例代碼
本篇文章主要介紹了Android開發(fā)之自帶下載器DownloadManager的使用示例代碼,Android自帶的DownloadManager是一個很好的下載文件的工具,有興趣的可以了解一下。2017-03-03Android Studio設(shè)置、改變字體和主題的方法
這篇文章主要介紹了Android Studio設(shè)置、改變字體和主題的方法,需要的朋友可以參考下2018-03-03Kotlin協(xié)程之Flow基礎(chǔ)原理示例解析
這篇文章主要為大家介紹了Kotlin協(xié)程之Flow基礎(chǔ)原理示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-09-09Android studio實現(xiàn)簡易計算器App功能
這篇文章主要為大家詳細介紹了Android studio實現(xiàn)簡易計算器App功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-05-05