在.NET MAUI Blazor应用程序中区分Android虚拟键盘输入和物理条形码阅读器输入

vbkedwbf  于 2023-10-21  发布在  .NET
关注(0)|答案(2)|浏览(169)

我目前正在为Android开发一个.NET MAUI Blazor应用程序,遇到了一个关于输入源识别的问题。具体来说,我需要区分来自Android虚拟键盘的输入和来自应用程序中物理条形码阅读器的输入。挑战在于准确识别和处理这两种不同类型的输入。
如果有人有解决办法,请帮助我。

cpjpxq1n

cpjpxq1n1#

在大多数情况下,你不能。大多数条形码扫描器都假装是硬件键盘。因此,来自其中一个的数据和来自连接到设备的蓝牙或USB键盘的数据之间没有区别。
现在大多数的Android键盘(请不要谈论Android键盘-没有这样的事情。键盘是一个应用程序,许多OEM都有自己的键盘,所有Android设备都没有默认键盘)将使用commitText而不是实际的按键事件。因此,您可以为每个编辑文本(或其他接受键盘输入的视图)覆盖InputConnection,并以不同于KeyEvents的方式处理commitText和其他命令。但我不会建议它,它很可能是错误的,它不会为所有的键盘工作。

z31licg0

z31licg02#

并不引以为豪,但几年前,当我们有那些磁卡阅读器时,我不得不创建一个代码,来区分键盘输入和磁卡阅读器输入。
(This你问的差不多)
我的解决方案是检测这些符号被接收的速度。如果我一次接收一个字符,并且彼此之间有特定的时间间隔-我知道这是手动输入。所以我可以忽略它。
这工作很好,到最后一天,我们使用磁性阅读器。
我相信有更好的方法,我不会以任何方式推荐它。但它会工作,如果你不想出任何更好的。

相关问题