Подтвердить что ты не робот

Как включить как аппаратные, так и виртуальные клавиатуры на Android-сэндвич с мороженым

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

Моя проблема в том, что после того, как считыватель штрих-кода подключен, он распознается как настоящая клавиатура, и я больше не могу обращаться к виртуальной клавиатуре. Это большая проблема для меня, потому что я использую только считыватель штрих-кода для кодирования кодов EAN13 и вам нужна мягкая клавиатура...

Есть ли способ включить как виртуальную, так и настоящую клавиатуру? Мне действительно нужна помощь в этом....

Спасибо!

4b9b3361

Ответ 1

Ну, я нашел решение своей проблемы! (Не знаю, что теперь о щедрости...)

Когда вы вводите текстовую область (например: в навигаторе), вам нужно просто коснуться значка клавиатуры слева от часов. Там, рядом с "Использовать физическую клавиатуру", вам нужно выбрать "Нет".

Я обнаружил, что даже так, считыватель штрих-кода будет по-прежнему активным (yessss!), и появится и мягкая клавиатура!

Ответ 2

Вы можете использовать InputMethodManager, чтобы открыть клавиатуру программного обеспечения:

InputMethodManager imm = (InputMethodManager)getContext().getSystemService(
                                              Context.INPUT_METHOD_SERVICE); 
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);

Ответ 3

Да, сканер штрих-кода распознается как физическая клавиатура. Когда клавиатура подключена к устройству, по умолчанию мягкая клавиатура отключена. Чтобы включить его, нам нужно отключить аппаратную клавиатуру с помощью:

Настройки > Язык и ввод > Выберите метод ввода

Имя опции может отличаться от устройства к устройству. Мы сможем использовать сканер вместе с мягкой клавиатурой, даже если мы отключим его.

И нет, в настоящее время нет возможности программно выполнить это. Самое большее, что мы можем сделать, это обнаружить, когда сканер/клавиатура подключена и перенаправить пользователя в окно выбора метода ввода, переопределив метод onConfigurationChanged следующим образом:

@Override
public void onConfigurationChanged(Configuration newConfig) {
  super.onConfigurationChanged(newConfig);
  if(newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_NO) {

    ((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE))
                                  .showInputMethodPicker();
    Toast.makeText(this, "Barcode Scanner detected. Please turn OFF Hardware/Physical keyboard to enable softkeyboard to function.", Toast.LENGTH_LONG).show();
  }
}

Ответ 4

Попробуйте сделать это, чтобы открыть мягкую клавиатуру:

((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY);

Чтобы закрыть обратно мягкую клавиатуру:

((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(_pay_box_helper.getWindowToken(), 0);

Ответ 5

Не работает с клавиатурой запаса, так как значок не отображается. Вам нужно либо другое приложение для клавиатуры, либо приложение для переключения клавиатуры (даже если вы не устанавливаете какую-либо другую клавиатуру, он просто покажет значок)

Ответ 6

Я не программист, но имею те же самые проблемы, что и здесь. После многократного поиска в Интернете я нашел клавиатуру через магазин Google Play, который, кажется, отлично работает для нас (BT Scanner и одновременно хочет SoftKeyboard). Он назывался хакерской клавиатурой Клауса Вайднера.

Просто используйте Hackers Keyboard, перейдите в "Настройки" → прокрутите вниз до "Язык и ввод" → Хакерская клавиатура → перейти к → Конфигурации → Прокрутите вниз до "НАСТРОЙКИ РЕЖИМА ВХОДА" → Убедитесь, что флажок "Показать мягкую клавиатуру всегда". Softkeyboard будет оставаться включенным, даже если сканер подключается через Bluetooth. Работает также при отключении и повторном подключении Bluetooth-сканера.