[英]Android, incomplete input from barcode scanner when virtual keyboard is enabled
我正在嘗試將KDC200 Bluetooth barcode scanner
與我的android應用程序一起使用,但是啟用虛擬鍵盤后我遇到了問題(我認為虛擬鍵盤與“ softkey”相同嗎?android設備是Samsung Note 5)。 掃描器的輸入似乎被切斷了。 例如,而不是接收1234567890
完全,我可能只會收到1234567
或123456789
代替。 通過設置禁用虛擬鍵盤時,會得到完整的輸入。 這不僅在我的應用程序中,而且在我使用過掃描儀的所有應用程序中都會發生。
我看到很多有關虛擬鍵盤在掃描儀連接時沒有顯示的問題,但到目前為止,有關輸入不完整的信息還很少。
有沒有一種方法可以同時啟用藍牙掃描程序和虛擬鍵盤?
否則,如果必須禁用虛擬鍵盤以從Bluetooth掃描器接收全部輸入,那么當對EditText
輸入進行聚焦時,是否可以通過編程方式啟用和禁用它?
如果必須禁用虛擬鍵盤,而我無法以編程方式啟用和禁用它,那么我唯一的選擇是使用按鈕創建自己的鍵盤嗎? 我認為這似乎是不得已的方法。 它不必是完整的鍵盤,而只需是AZ,0-9,退格鍵,回車鍵和點號即可。 有沒有更好的辦法? 也許圖書館已經存在?
我目前正在使用與我要構建的應用程序類似的應用程序,並且看來他們已經輸入了自己的鍵盤或正在使用外部庫,我不確定是哪個。 禁用虛擬鍵盤后,此應用程序上的鍵盤會顯示出來,啟用后似乎會覆蓋它。
因此,如果連接了掃描儀,虛擬鍵盤可能不會出現的原因是,最常見的運行掃描儀模式(並且IIRC是在iOS上唯一使用的方式)是在HID模式下,它會假裝其硬件鍵盤並將密鑰代碼發送到操作系統。 如果連接了硬件,則操作系統通常不會顯示虛擬鍵盤。
通過覆蓋onEvaluateInputViewShown,可以覆蓋此設置作為鍵盤。 在該應用程序中,我能想到的就是用inputMethodManager.showSoftInput強制鍵盤顯示。
我從未見過由於鍵盤彈起而導致掃描儀無法發送數據的情況。 我已經看到掃描儀發送數據的速度非常慢,並且花費幾秒鍾來發送少量字符。 我確保您不會只是看到延遲。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.