Posted by 每特17劃 on 2023-08-20

以手機作爲藍芽無線條碼掃碼器 Mobile phone as Bluetooth Barcode Scanner

幫書籍建檔時, 要一一手動逐字輸入 ISBN 編號, 不甚方便。 但手邊沒有可接筆電的條碼掃瞄槍。 心想, 不知道有沒有人有作 Android App, 用軟體模擬的方式, 把手機模擬成一支 Bluetooth 條碼掃描器?

找了一下, 還真的有人作了, Android App 如下:

Bluetooth QR & Barcode to PC

而且很佛心的是 Open Source (GPLv3)。看 commit logs 記錄,2022-10 月才上架到 Google Play 上,還不滿一年,適逢此時能找到真是幸運。

Fabi019/hid-barcode-scanner: Android app for scanning barcodes and sending them to a PC via emulating a bluetooth keyboard.

下載安裝後, 實測能正常使用。分享試用心得如下

Bluetooth 連線

第一步是建立筆電跟手機的 Bluetooth 配對連線。

我測試的時候,並非一次就成功。 有時候是配對上了,但裝置沒回應 。有時候是 scan 不到。 因爲之前設定 AirPod 也有相同狀況,需要重連數次才成功。 所以不確定是因爲我 Linux 的 Bluetooth 系統的問題,Android 問題(LineageOS),還是 App 的問題。

如果遇到相同的狀況,可以試著:

  • 手機端:
    • 停止 App
    • 在 Bluetooth 設定裏,移除未成功的 profile
    • 重啟 Bluetooth 服務
  • 筆電端:
    • 在 Bluetooth 設定裏,移除未成功的 profile
    • 重啟 Bluetooth 服務

之後再重試。重複數次,應該就能順利連線成功。

專案官方網頁有列出更多關於連線的資訊,進一步細節可參閱 Troubleshooting 一節。

使用細節

掃描條碼時,得到的字串並不會自動送出,而是要按 “Send to Device” 才會傳到筆電輸入。 要自動送出的話,可至 “Settings” 啟用 “Auto-send” 選項。 (如下圖)

Imgur

當 App 掃到字串時, 文字會顯示在掃瞄方框的上方, 預設不會發出聲音。這在輸入相似格式的資料時, 不易察覺。 此時可以啟用 “Settings” 中的 “Scan sound” 選項, 在掃到條碼時發出聲音提示。 或是不想發出聲音,也有 “Haptic feedback” 選項,採取震動提示。 (如下圖)

Imgur

在一些使用情境,在輸入掃描字串後,需要換手回筆電按 Enter 接續下一個動作。 例如: 在試算表/Excel裏跳到下一格,或是文字列表跳到下一行,…。 這裏它有提供 “Extra Keys” 的選項,可以在送出掃描字串最後,在附帶輸出指定的字元,例如: Enter / Tab / Space 。 這讓連續輸入處理時變得更方便。 (註: 其他還可以透過 “Custom” 的選項,配合 “Custom template” 的設定,自訂字串。)

Imgur

手機螢幕會自動睡着關閉,而再次打開屏幕時,Bluetooth 連線常常因此中斷而需要重新連線。運氣不好時,可能還要重跑 Bluetooth 配對連線的流程,十分困擾。這裏可以啓用 “Settings” 裏的 “Auto-connect” 選項。如此一來,重新打開手機回到 App 時,就能馬上接着立刻使用。

Imgur

另一個解法是,保持螢幕一直醒着而不自動睡着。除了改 Android 系統設定,也可以使用像是 Caffeine - Keep Screen On 這樣的 App 。可以單次讓手機保持清醒一段時間,例如: 5 / 10 / 30 min, 而不需要完全關閉手機自動睡着的功能。 (註: 若使用 LineageOS 手機的話,內建有此功能,不用在另外安裝)

設定建議

若是希望模擬仿照一般條碼掃描槍,個人建議可設定:

  • 啓用 “Auto-send”
  • 啓用 “Scan sound”
  • 啓用 “Auto-connect”
  • 保持螢幕醒着

再搭配合適的輔助支架,使用起來就相當方便了。

心得

雖然就感應速度、手感、流暢度,仍無法和實體條碼掃描器相提並論。 不過 App 有許多貼心的設計跟設定選項,精準的環繞在掃碼的真實使用情境上。 好好調校,能發揮比預期還要流暢的使用流程。 對於偶爾使用,小批量的個人使用來說,非常有用。

另外,就程式開發者的角度。 原 App 以 Kotlin 撰寫,以軟體模擬一個 Bluetooth HID Keyboard 裝置。對開發 Bluetooth 輸入相關的應用 App 極有參考價值。畢竟它不僅底層的資料串接,還把 Bluetooth 的 pairing/connect 使用流程都示範實作了一份。