Как включить как аппаратные, так и виртуальные клавиатуры на Android-сэндвич с мороженым
Я разрабатываю приложение управления запасами с Django для компании-клиента и хочу использовать сэндвич-планшет для мороженого в качестве устройства конечного пользователя.
Я использую USB-считыватель штрих-кода, который отлично работает.
Моя проблема в том, что после того, как считыватель штрих-кода подключен, он распознается как настоящая клавиатура, и я больше не могу обращаться к виртуальной клавиатуре. Это большая проблема для меня, потому что я использую только считыватель штрих-кода для кодирования кодов EAN13 и вам нужна мягкая клавиатура...
Есть ли способ включить как виртуальную, так и настоящую клавиатуру?
Мне действительно нужна помощь в этом....
Спасибо!
Ответы
Ответ 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-сканера.