Reputation: 2727
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
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
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