使用外部键盘或条形码扫描器时显示本机键盘

时间:2016-04-16 01:11:40

标签: android keyboard barcode-scanner usb-otg android-inputtype

我正在开发一款使用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;
        }
    });

提前致谢。

0 个答案:

没有答案