Android 連接藍牙掃碼器無輸入框的實現(xiàn)
Android 的APP 需要集成一個藍牙掃碼器, 特別的是,需要掃碼的地方是沒有輸入框的(EditText),不能通過直覺上理解的通過對EditText輸入事件進行監(jiān)聽處理,取得掃碼結(jié)果。并且設(shè)備也沒有提供SDK。
細想了一下, 藍牙掃碼器本質(zhì)應(yīng)該是個HID設(shè)備,相當于藍牙鍵盤。而后豁然開朗。
每一次掃碼應(yīng)該會觸發(fā)按鍵事件,通過監(jiān)聽當前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中Activity之間跳轉(zhuǎn)和參數(shù)傳遞的實例
本篇文章主要介紹了Android中Activity之間跳轉(zhuǎn)和參數(shù)傳遞的實例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-02-02
關(guān)于Android中點擊通知欄的通知啟動Activity問題解決
這篇文章主要介紹了關(guān)于解決Android中點擊通知欄的通知啟動Activity問題的相關(guān)資料,文中介紹的非常詳細,對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。2017-03-03
舉例講解Android應(yīng)用開發(fā)中OTTO框架的基本使用
這篇文章主要介紹了Android應(yīng)用開發(fā)中OTTO框架的基本使用講解,文中舉了創(chuàng)建一個單例模式的應(yīng)用例子,需要的朋友可以參考下2016-02-02
c++ mk文件出錯Jni調(diào)用產(chǎn)生java.lang.UnsatisfiedLinkError錯誤解決方法
錯誤產(chǎn)生在我把方法從c語言轉(zhuǎn)為c++語言后產(chǎn)生的,后來檢查到這種錯誤是因為mk文件出錯,加載c文件和加載c++的文件所用的代碼不一樣,下面請看2013-11-11
Android用SharedPreferences實現(xiàn)登錄注冊注銷功能
這篇文章主要為大家詳細介紹了Android用SharedPreferences實現(xiàn)登錄注冊注銷功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-04-04
Android開發(fā)筆記之:Handler Runnable與Thread的區(qū)別詳解
本篇文章是對在Android中Handler Runnable與Thread的區(qū)別進行了詳細的分析介紹,需要的朋友參考下2013-05-05
Android 使用 Scroller 實現(xiàn)平滑滾動功能的示例代碼
這篇文章主要介紹了Android 使用 Scroller 實現(xiàn)平滑滾動功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07
Android ListView自定義Adapter實現(xiàn)仿QQ界面
這篇文章主要為大家詳細介紹了ListView自定義Adapter實現(xiàn)仿QQ界面,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-10-10

