Android,启用虚拟键盘时条形码扫描器输入不完整

问题描述 投票:1回答:1

我正在尝试使用KDC200 Bluetooth barcode scanner和我的Android应用程序,但是当我启用虚拟键盘时我遇到问题(我认为虚拟键盘与“软键”相同?Android设备是三星Note 5)。扫描仪输入被切断时似乎存在某种干扰。例如,我可能只接受12345678901234567而不是完全接收123456789。当我通过设置禁用虚拟键盘时,我得到完整的输入。这不仅仅是在我的应用程序中,它发生在我使用扫描仪的所有应用程序中。

我看到很多问题询问虚拟键盘在连接扫描仪时没有显示,但到目前为止还没有关于不完整输入的信息。

有没有办法同时启用蓝牙扫描仪和虚拟键盘?

否则,如果必须禁用虚拟键盘以从蓝牙扫描仪完全接收输入,那么当EditText输入被聚焦时,有没有办法以编程方式启用和禁用它?

如果必须禁用虚拟键盘并且我无法以编程方式启用和禁用它,那么我是唯一一个用按钮创建自己的键盘的选项吗?这似乎是我认为的最后手段。它不需要是完整的键盘,而只需要A-Z,0-9,退格键,输入和句点。还有更好的方法吗?也许图书馆已经存在?

我目前正在使用类似于我正在尝试构建的应用程序,看起来他们已经制作了自己的键盘输入或正在使用外部库,我不知道哪个。此应用程序上的键盘在虚拟键盘被禁用时显示,并且在启用时似乎会覆盖它。

java android keyboard barcode-scanner
1个回答
0
投票

因此,如果连接了扫描仪,虚拟键盘可能不会出现的原因是运行扫描仪的最常见模式(和IIRC在iOS上使用的唯一方式)是HID模式 - 它假装其硬件键盘并将密钥代码发送给操作系统。如果连接了硬件键,操作系统通常不会显示虚拟键盘。

可以通过覆盖onEvaluateInputViewShown将此设置覆盖为键盘。从应用程序中,我所能想到的就是强制键盘显示inputMethodManager.showSoftInput。

由于键盘正在运行,我从未见过扫描仪不发送数据。我看到扫描仪发送数据非常缓慢,需要几秒钟才能发送少量字符。我确保你不仅仅是看到延迟。

© www.soinside.com 2019 - 2024. All rights reserved.