以手機作爲藍芽無線條碼掃碼器 Mobile phone as Bluetooth Barcode Scanner
幫書籍建檔時, 要一一手動逐字輸入 ISBN 編號, 不甚方便。 但手邊沒有可接筆電的條碼掃瞄槍。 心想, 不知道有沒有人有作 Android App, 用軟體模擬的方式, 把手機模擬成一支 Bluetooth 條碼掃描器?
找了一下, 還真的有人作了, Android App 如下:
而且很佛心的是 Open Source (GPLv3)。看 commit logs 記錄,2022-10 月才上架到 Google Play 上,還不滿一年,適逢此時能找到真是幸運。
下載安裝後, 實測能正常使用。分享試用心得如下
Bluetooth 連線
第一步是建立筆電跟手機的 Bluetooth 配對連線。
我測試的時候,並非一次就成功。 有時候是配對上了,但裝置沒回應 。有時候是 scan 不到。 因爲之前設定 AirPod 也有相同狀況,需要重連數次才成功。 所以不確定是因爲我 Linux 的 Bluetooth 系統的問題,Android 問題(LineageOS),還是 App 的問題。
如果遇到相同的狀況,可以試著:
- 手機端:
- 停止 App
- 在 Bluetooth 設定裏,移除未成功的 profile
- 重啟 Bluetooth 服務
- 筆電端:
- 在 Bluetooth 設定裏,移除未成功的 profile
- 重啟 Bluetooth 服務
之後再重試。重複數次,應該就能順利連線成功。
專案官方網頁有列出更多關於連線的資訊,進一步細節可參閱 Troubleshooting 一節。
使用細節
掃描條碼時,得到的字串並不會自動送出,而是要按 “Send to Device” 才會傳到筆電輸入。 要自動送出的話,可至 “Settings” 啟用 “Auto-send” 選項。 (如下圖)
當 App 掃到字串時, 文字會顯示在掃瞄方框的上方, 預設不會發出聲音。這在輸入相似格式的資料時, 不易察覺。 此時可以啟用 “Settings” 中的 “Scan sound” 選項, 在掃到條碼時發出聲音提示。 或是不想發出聲音,也有 “Haptic feedback” 選項,採取震動提示。 (如下圖)
在一些使用情境,在輸入掃描字串後,需要換手回筆電按 Enter 接續下一個動作。 例如: 在試算表/Excel裏跳到下一格,或是文字列表跳到下一行,…。 這裏它有提供 “Extra Keys” 的選項,可以在送出掃描字串最後,在附帶輸出指定的字元,例如: Enter / Tab / Space 。 這讓連續輸入處理時變得更方便。 (註: 其他還可以透過 “Custom” 的選項,配合 “Custom template” 的設定,自訂字串。)
手機螢幕會自動睡着關閉,而再次打開屏幕時,Bluetooth 連線常常因此中斷而需要重新連線。運氣不好時,可能還要重跑 Bluetooth 配對連線的流程,十分困擾。這裏可以啓用 “Settings” 裏的 “Auto-connect” 選項。如此一來,重新打開手機回到 App 時,就能馬上接着立刻使用。
另一個解法是,保持螢幕一直醒着而不自動睡着。除了改 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 使用流程都示範實作了一份。
- Ref: