Android 連接藍牙掃碼器無輸入框的實現(xiàn)
Android 的APP 需要集成一個藍牙掃碼器, 特別的是,需要掃碼的地方是沒有輸入框的(EditText),不能通過直覺上理解的通過對EditText輸入事件進行監(jiān)聽處理,取得掃碼結果。并且設備也沒有提供SDK。
細想了一下, 藍牙掃碼器本質(zhì)應該是個HID設備,相當于藍牙鍵盤。而后豁然開朗。
每一次掃碼應該會觸發(fā)按鍵事件,通過監(jiān)聽當前Activity的按鍵事件,應該可以實現(xiàn),無輸入框的情況下取得掃碼結果。
重載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ù)輸入設備信息判斷是否為特定掃碼器輸入
if (!isVirtual) {
scannerHelper.onScanerInput(event);
}
}
}通常掃碼器在掃碼結果后會追加一個結束字符,我的這個設備默認為回車。 所以接收到回車可以認為一個掃碼結果“輸入”完成。
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)掃碼結果
buffer="";
}else{
if (event.getAction() == KeyEvent.ACTION_UP && event.isPrintingKey()){
buffer += (char)event.getUnicodeChar();
}
}
}
}測試OK。
到此這篇關于Android 連接藍牙掃碼器無輸入框的文章就介紹到這了,更多相關Android 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Android中Activity之間跳轉和參數(shù)傳遞的實例
本篇文章主要介紹了Android中Activity之間跳轉和參數(shù)傳遞的實例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-02-02
關于Android中點擊通知欄的通知啟動Activity問題解決
這篇文章主要介紹了關于解決Android中點擊通知欄的通知啟動Activity問題的相關資料,文中介紹的非常詳細,對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。2017-03-03
舉例講解Android應用開發(fā)中OTTO框架的基本使用
這篇文章主要介紹了Android應用開發(fā)中OTTO框架的基本使用講解,文中舉了創(chuàng)建一個單例模式的應用例子,需要的朋友可以參考下2016-02-02
c++ mk文件出錯Jni調(diào)用產(chǎn)生java.lang.UnsatisfiedLinkError錯誤解決方法
錯誤產(chǎn)生在我把方法從c語言轉為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

