У меня есть общий считыватель кредитных карт, который определяется как USB-клавиатура. Я проверил его, просто используя текстовое представление для захвата текста.
Мне было интересно, если бы было лучше всего реализовать его, поэтому вам не нужно активное текстовое поле (например, захватить общие события клавиатуры через консольные потоковые буферы, как то, что я использую в настольной версии устройства чтения карт):
Console console = System.console();
String inputData = new String (console.readPassword());
Класс View
имеет метод setOnKeyListener
который должен быть полезен для вас.