2017-03-08 107 views
-1

我想使用藍牙條形碼掃描器讀取條形碼。 我不想使用藍牙鍵盤仿真(HID)模式,因爲在任何掃描之前,都難以指向文本框。從Android中的藍牙條形碼讀取器讀取數據

我看了這個developer.android.com/guide/topics/connectivity/bluetooth.html但我還沒有找到可用的東西。 必須監聽帶有結束代碼分隔符(CR,LF等)的寫入事件。

+1

搞清楚如何要做到這一點是你的責任。我們不在這裏爲你做你的工作。 –

+0

我從來沒有想過,它可能是你的責任:)這是我現在面臨的問題,我認爲可能是一個普遍的興趣。就像這個網站上的所有帖子一樣。如果你想對別人有意思,請在你自己的後院注意! –

+0

我完全不是故意的,我只是指出這是你發佈這個問題的錯誤網站。本網站旨在幫助人們解決代碼中的問題,而不是告訴人們如何去做。因此,如果您對一段代碼沒有特定的問題,那麼您的網站就會出現問題,並且您的問題不會很快收到,也不會很快得到答覆。 –

回答

2

如果您的藍牙條形碼掃描儀沒有將HID模式更改爲SSP模式的開關*,則無法與他連接。 (*硬件或軟件開關)

Android本機連接HID藍牙(人機接口設備),不要讓他們去:)。

所以,我解決了我的問題閱讀和重寫鍵盤事件。

@Override 
public boolean dispatchKeyEvent(KeyEvent event) { 
    if (barCodeRadearIsOn && (event.getKeyCode() == KeyEvent.KEYCODE_ENTER || (event.getKeyCode() >= 7 && event.getKeyCode() <= 16))) { 
     if (event.getKeyCode() == KeyEvent.KEYCODE_ENTER) { 
      if (event.getAction() == KeyEvent.ACTION_UP){ 
       Toast.makeText(context, barCode, Toast.LENGTH_LONG).show(); 

       ....... ....... 

       barCode = ""; 
      } 
     } else { 
      if (event.getAction() == KeyEvent.ACTION_UP){ 
       barCode = barCode + (char)event.getUnicodeChar(); 
      } 
     } 
     return true; 
    } else { 
     return super.dispatchKeyEvent(event); 
    } 
} 

注:

  • barCodeRadearIsOn - 用戶有一個開關的開/關
  • 此代碼 「截距」 僅輸入和數字字符從0到9