我有一个条形码扫描仪 CipherLab 1070。它通过 OTG 电缆连接到 Android 设备。我需要借助它来阅读 BarCode。
当我在此设备的帮助下扫描代码时:
- 扫描号码
- 将数字一一发送到android,发送到我的应用程序。应用程序将其视为 KEY_DOWN 事件。
- 在它之后 a)如果我的活动中有任何可点击的项目 - 扫描仪触摸它(但没有触摸)(看起来你用手指点击了视图并且不要释放它) b)如果任何视图已经被持有(触摸down) - 它执行 touch_up(就像您从视图中释放手指并发生单击事件一样)。
因此,如果我连续读取 2 个条形码 - 扫描仪会在某个视图上模拟 1 次点击。如果我阅读 6 个代码 - 3 次点击。
它适用于大部分应用程序,其中存在一些按钮。示例 - ColorSheep。当我扫描条形码时 - 我的颜色被重置 O_O
还有1件事。我有2个片段。1 个带有列表视图和 1 个 GridView。两者都实现了适配器和 onItemClickListeners。Scanner 激活 GridView 的子视图。
那么发生了什么:我有项目网格,如果我扫描代码 - 第一个项目是“touched_down”。如果我扫描 2-nd - "touch_down" 释放并且 onItemClickListener 被称为 1-st 项目。4 - touch_down,4 - 触摸和 onItemClickListener。
如果我单击 GridView 中的某些特定项目 - 那么此项目会出现此错误。
示例:我单击第 5 个项目。它被点击,一切正常。然后我读了 6 次代码。所以第 5 个项目将被“点击”3 次。
关于条码扫描的程序。我的应用程序看到“keyDown”事件的序列。在一些魔术师的帮助下扫描后,开始点击我的视图。不仅是意见。如果我的活动没有任何视图,但有菜单,扫描仪“单击”我的菜单。
谢谢你的帮助。