gpt4 book ai didi

java - Android,启用虚拟键盘时条码扫描仪输入不完整

转载 作者:太空宇宙 更新时间:2023-11-04 10:35:35 26 4
gpt4 key购买 nike

我尝试在 Android 应用程序中使用 KDC200 蓝牙条码扫描仪,但在启用虚拟键盘时遇到问题(我认为虚拟键盘与“软键”相同? Android 设备是 Samsung Note 5)。似乎存在某种干扰,导致扫描仪输入被切断。例如,我可能只收到 1234567123456789,而不是完整接收 1234567890。当我通过设置禁用虚拟键盘时,我得到了完整的输入。这不仅发生在我的应用程序中,而且发生在我使用过扫描仪的所有应用程序中。

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

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

否则,如果必须禁用虚拟键盘才能从蓝牙扫描仪接收完整的输入,那么有没有办法在 EditText 输入获得焦点时以编程方式启用和禁用它?

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

我目前正在使用一个与我正在尝试构建的应用程序类似的应用程序,看起来他们要么制作了自己的键盘输入,要么正在使用外部库,我不确定是哪一个。当禁用虚拟键盘时,此应用程序上的键盘会显示,并且在启用虚拟键盘时似乎会覆盖它。

最佳答案

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

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

我还没有见过扫描仪因为键盘打开而无法发送数据的情况。我见过扫描仪发送数据的速度非常慢,需要几秒钟才能发送少量字符。我会确保您看到的不仅仅是延迟。

关于java - Android,启用虚拟键盘时条码扫描仪输入不完整,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49526158/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com