我正在开发一款使用USB OTG条码扫描器的Android应用程序。 我们在片段中创建了一个自定义键盘,并自定义了一个EditText,它与我们自己的键盘片段进行通信以进行写入。
一切运作良好,直到我使用webview显示网页,因为我们无法将自定义键盘连接到webview,因此我们决定显示本机键盘,但不显示本机键盘。
据我了解,当android检测到条形码扫描器时,它会将其设置为默认键盘,除非我拔掉条形码扫描器,否则我无法更改为原生键盘。
我正在使用棒棒糖。
我尝试按照建议的here在Web视图上捕获onTouchEvent,我能够检测到onTouch事件,并检测我何时触摸文本框
servicesWebView.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
WebView.HitTestResult hr = ((WebView) v).getHitTestResult();
if(hr.getType() == 9) {
Toast.makeText(context, "touch textarea", Toast.LENGTH_SHORT).show();
}
InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
return false;
}
});
提前致谢。