我试图在我的Android应用程序中使用KDC200 Bluetooth barcode scanner
,但是当我启用虚拟键盘时遇到问题(我认为虚拟键盘和"软键和#34;?Android设备是三星Note 5)。扫描仪输入被切断时似乎存在某种干扰。例如,我可能只会收到1234567890
或1234567
,而不是完全接收123456789
。当我通过设置禁用虚拟键盘时,我得到完整的输入。这不仅仅是在我的应用程序中,它发生在我使用扫描仪的所有应用程序中。
我看到很多问题询问扫描仪连接时虚拟键盘没有显示,但到目前为止还没有关于输入不完整的信息。
有没有办法同时启用蓝牙扫描仪和虚拟键盘?
否则,如果必须禁用虚拟键盘才能从蓝牙扫描仪接收完整输入,那么当有EditText
输入聚焦时,有没有办法以编程方式启用和禁用它?
如果必须禁用虚拟键盘并且我无法以编程方式启用和禁用它,那么我是唯一一个用按钮创建自己的键盘的选项吗?这似乎是我认为的最后手段。它不需要是一个完整的键盘,但只需要A-Z,0-9,退格键,输入和句号。还有更好的方法吗?也许图书馆已经存在?
我目前正在使用类似于我正在尝试构建的应用程序,看起来他们已经制作了自己的键盘输入或正在使用外部库,我不知道哪个。此应用程序上的键盘在虚拟键盘被禁用时显示,并且在启用时似乎会覆盖它。
答案 0 :(得分:0)
因此,如果连接了扫描仪,虚拟键盘可能不会出现的原因是运行扫描仪的最常见模式(和IIRC在iOS上使用的唯一方式)是HID模式 - 它假装它硬件键盘并将键码发送到OS。如果连接了硬件键,操作系统通常不会显示虚拟键盘。
可以通过覆盖onEvaluateInputViewShown将此设置覆盖为键盘。从应用程序中,我所能想到的就是强制键盘显示inputMethodManager.showSoftInput。
由于键盘正在运行,我还没有看到扫描仪无法发送数据。我看到扫描仪发送数据非常缓慢,需要几秒钟才能发送少量字符。我确定你没有看到延迟。