2017-07-22 134 views
0

我一直在試圖獲得一段代碼連接到藍牙bardcode閱讀器,我買了幾乎所有的圖書館都試過Android阿森納。如何從藍牙條碼掃描器硬件設備讀取

目前,我用這一個:https://github.com/MacroYau/Blue2Serial

我在清單的所有權限:應用程序打開時

<uses-permission android:name="android.permission.BLUETOOTH" /> 
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> 
    <uses-permission android:name="android.permission.BLUETOOTH_PRIVILEGED" /> 
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 

我也請求權限:

ActivityCompat.requestPermissions(this, 
       new String[]{android.Manifest.permission.BLUETOOTH, 
         android.Manifest.permission.BLUETOOTH_ADMIN, 
         android.Manifest.permission.BLUETOOTH_PRIVILEGED, 
         Manifest.permission.ACCESS_COARSE_LOCATION}, 
       0); 

我能夠從應用程序連接到掃描儀設備,它配對好。但是,當我掃描某些東西時,我沒有看到public void onBluetoothSerialRead(String message)方法正在啓動。這與我嘗試過的所有其他庫完全一樣。我可以配對,但不能讀它。相反,如果我在同一部手機中打開一個記事本類型的應用程序並對其進行掃描,則內容會立即寫入記事本。

我使用的掃描儀設備是這一個:https://www.zebra.com/us/en/products/scanners/companion-scanners/cs4070.html

任何人只要有一些小費給我?

謝謝!

+0

您確定掃描儀設備未配置爲批處理模式嗎? –

+0

Hi @MorrisonChang - 我不知道!你知道我可以檢查嗎?如果我簡單地將它與Android本身配對,並可以掃描任何我想要的任何記事本類型的應用程序(或Gmail,無論)。它只是工作。 –

+0

我剛剛閱讀手冊,它說「正常批量模式(默認) - 掃描儀不批量解碼數據,但通過藍牙傳輸所有解碼的數據到主機。如果掃描儀沒有配對主機,並且您試圖掃描並解碼 條形碼,掃描儀會發出4聲短高的嗶嗶聲。「我沒有配置任何東西,所以我假設我沒有配置批處理模式。 –

回答

0

我能想到幾件事情。

(1)您正在閱讀設計不良的二維條形碼。一些較舊的「標準」條形碼具有簡單的校驗和,因此使用基於激光的掃描儀的大量隨機數據實際上可以產生解碼值。如果我記得正確Interleaved 2 of 5是其中之一。 (2)如果啓用了「讀取所有條形碼」,則可能代碼字的子序列(白色和黑色空格)映射到有效的條形碼定義。我只會啓用您實際閱讀的二維條形碼類型。 (3)在Android側,您的藍牙串行閱讀器沒有足夠快地獲取數據。這可以通過掃描器發送前綴/後綴值來緩解,以便應用知道你是否得到那些是傳輸錯誤。

+0

謝謝,@MorrisonChang。我不相信編號1是一個問題,因爲我正在嘗試多個條形碼,如果我使用HID接口,所有工作都很好。我使用HID配置文件將其與Android本身配對,轉至ColorNote,掃描一些內容並全部在那裏。 我曾嘗試爲HID檔案創建代碼,但並不幸運。你知道任何可以處理HID配置文件的android庫嗎? –

+0

如果您使用HID,則Android會將其視爲藍牙鍵盤。我相信在數據到達應用程序之前,您必須更改ROM以執行任何預過濾器/數據修改。如果不是自定義ROM,我假設自助服務終端類型數據輸入應用程序和自定義EditText視圖來處理數據輸入。還要考慮授權Zebra SDK。 –

+0

我正在嘗試使用Zebra SDK,但到目前爲止沒有運氣。他們的.aar錯過了很多類。 –