Показывать родную клавиатуру при использовании внешней клавиатуры или сканера штрих-кодов

Я разрабатываю приложение для Android, в котором используется сканер штрих-кодов USB OTG. Мы создали собственную клавиатуру во фрагменте и настроили EditText, который взаимодействует с нашим собственным фрагментом клавиатуры для записи.

Все работает хорошо, пока я не использовал веб-просмотр для отображения веб-страницы, потому что мы не можем подключить нашу пользовательскую клавиатуру к веб-просмотру, поэтому мы решили показать родную клавиатуру, но родная клавиатура не появляется.

Насколько я понимаю, когда Android обнаруживает сканер штрих-кодов, он устанавливает его как клавиатуру по умолчанию, и я не могу перейти на родную клавиатуру, если не отключу сканер штрих-кодов.

Я использую леденец.

Я попытался поймать 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;
        }
    });

Заранее спасибо.


person Hermandroid    schedule 16.04.2016    source источник