acostela
acostela

Reputation: 2727

Detect input from software or hardware keyboard

I'm working in an Android app that must use a RFID tag reader. I'm using this reader as an extra device connected in my microUSB with an OTG wire. Android is detecting this device as an input keyboard. I would like to know if I can programatically detect when a user does an input with this reader. So basically I must differenciate the input from my softkeyboard or this reader. I searched a lot but I can't find a solution any help would be so appreciated. Thank you very much.

Upvotes: 2

Views: 4136

Answers (2)

Kamil Z
Kamil Z

Reputation: 201

In kotlin, I am using KeyEvent to determine whether input is from external RFID tag reader. When I don't want to allow inserting values to edit_text from RFID reader I am using this:

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

also see docs and try to use it in relation to your problem

Upvotes: 0

Sbonelo
Sbonelo

Reputation: 684

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

This will detect if your editText is being editted with a hardware keyboard.

As stated here this is only useful for hardware keyboard, so in your case if this interface is not called, that means the editText input should come from the software keyboard.

Upvotes: 1

Related Questions