如果应用程序不显示EditText(文本框),并且没有软键盘,是否可以以某种方式捕获文本输入事件?
操作系统:Android 4.1.2
附言:让我解释一下为什么这是必要的:有一个设备——摩托罗拉TC55-(数据采集终端,安卓4.1.2上的智能手机,带条形码阅读器(激光)),它的左侧有一个扫描按钮。
按下后,激光扫描仪将打开,读取条形码,读取条形码后,读取的条形码符号将以编程方式"按下"。
不同的解决方案应该是利用这些设备在读取条形码时提供的Intent。
您可以在TC55的开发人员文档中找到更多信息,只需配置设备,即可将带有条形码数据的Intent发送到您的应用程序。
此配置可以导出并在不同的设备上重复使用。另一个选项是让应用程序使用TC55的Profile API以编程方式设置配置。通过这种方式,您可以根据您的用例对条形码解码器进行微调。
使用DataCapture Intents比使用模拟键盘输入要干净得多。
您是否尝试覆盖onKeyDown方法?
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
Log.d("MyApp", "key downed : " + keyCode);
if ( keyCode == KeyEvent.KEYCODE_SCANNER /* HERE AN OBSVIOUSLY FALSE CONSTANT*/ ) {
// perform your desired action here
// return 'true' to prevent further propagation of the key event
return true;
}
// let the system handle all other key events
return super.onKeyDown(keyCode, event);
}
现在,您只需要跟踪并在此列表中找到正确的关键码:http://developer.android.com/reference/android/view/KeyEvent.html
有关更多详细信息,请参阅此回复:https://stackoverflow.com/a/19215087/1802663