【发布时间】:2018-11-09 21:15:07
【问题描述】:
所以我有以下代码可以区分软键盘输入和蓝牙条码扫描器...
if(event.getAction()==KeyEvent.ACTION_DOWN){
if(event.getDeviceId()==-1) //from soft keyboard
return super.dispatchKeyEvent(event);
char pressedKey = (char) event.getUnicodeChar();
barCode += pressedKey;
}
if (event.getAction()==KeyEvent.ACTION_DOWN && event.getKeyCode() == KeyEvent.KEYCODE_ENTER) {
if(event.getDeviceId()==-1) //from keyboard
return super.dispatchKeyEvent(event);
String giftCardUPC = barCode.replaceAll("[^\\d.]", "");
fragmentProShopGiftCard.etUPCCode.setText(giftCardUPC);
barCode="";
}
这个想法是条码扫描器有一个设备 ID,而软键盘没有。现在的问题是我有一个支持硬蓝牙键盘、软键盘(如果他们不使用硬键盘)以及条形码扫描仪的活动。
有什么方法可以区分 dispatchKeyEvent 上的 2 个硬件设备吗?
【问题讨论】:
-
一个老生常谈的问题出现了:为什么?
-
这是一个 POS 系统,并且有一项活动可以“敲响”礼品卡以出售给客户。用户需要扫描新的礼品卡以获取 UPC 码,还有一个硬键盘,用户可以输入客户姓名和其他信息。当商店忙碌时,软键盘太慢了。
-
所以基本上你是在尝试审计效率?
-
我正在努力满足客户的业务需求。
-
你能告诉我们具体的要求是什么吗?这是防止手动输入礼品卡代码的安全措施,还是只是一种自动化/过滤输入的方法?如果是后者,可能有更好的方法来满足要求。
标签: android