Можно ли одновременно активировать физическую клавиатуру и программную клавиатуру?

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

Можно ли одновременно активировать физическую клавиатуру и программную клавиатуру? Если нет, то каков наилучший подход к решению проблемы? Должен ли я реализовать собственное представление, которое принимает события нажатия клавиш? Есть ли на рынке какое-либо приложение для клавиатуры, которое делает это?

Как программно включить и выключить физическую клавиатуру? Это кнопка-переключатель «Использовать физическую клавиатуру» (я нашел скриншот этой настройки здесь:

введите здесь описание изображения


person Anhsirk Reddy    schedule 16.09.2011    source источник


Ответы (1)


Невозможно одновременно активировать физическую клавиатуру и виртуальную клавиатуру. Это обеспечивается функцией InputMethodService onEvaluateInputViewShown. вы можете ознакомиться с документацией здесь .

/**
 * Override this to control when the soft input area should be shown to
 * the user.  The default implementation only shows the input view when
 * there is no hard keyboard or the keyboard is hidden.  If you change what
 * this returns, you will need to call {@link #updateInputViewShown()}
 * yourself whenever the returned value may have changed to have it
 * re-evaluated and applied.
 */
public boolean onEvaluateInputViewShown() {

Поэтому, если вы не реализуете свой собственный IME, в котором вы можете переопределить onEvaluateInputViewShown, невозможно одновременно активировать физическую и программную клавиатуру.

Что касается вашего последнего вопроса, я не уверен, но я думаю, что нет способа программно скрыть жесткую клавиатуру. Хотя у него нет решения, вы должны проверить время">этот вопрос

person dinesh    schedule 13.06.2013