检测来自软件或硬件键盘的输入



我正在使用一个必须使用RFID标签阅读器的Android应用程序。我正在使用这个阅读器作为额外的设备,通过OTG线连接到我的microUSB中。Android 正在将此设备检测为输入键盘。我想知道我是否可以以编程方式检测用户何时使用此阅读器进行输入。所以基本上我必须区分我的软键盘或这个阅读器的输入。我搜索了很多,但我找不到解决方案,任何帮助将不胜感激。谢谢。

yourEditText.setOnKeyListener(new View.OnKeyListener() {
        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            return false;
        }
    });

这将检测您的编辑文本是否正在使用硬件键盘进行编辑。

如此处所述,这仅对硬件键盘有用,因此在您的情况下,如果未调用此接口,则意味着 editText 输入应来自软件键盘。

在 kotlin 中,我使用 KeyEvent 来确定输入是否来自外部 RFID 标签阅读器。当我不想允许从RFID阅读器插入值以edit_text时,我正在使用这个:

edit_text.setOnKeyListener { _, _, event -> !event.device.isVirtual }

另请参阅文档并尝试将其与您的问题一起使用

相关内容

  • 没有找到相关文章

最新更新