2015-03-26 2 views
1

Я разрабатываю приложение, общающееся с сервером, и в какой-то момент нужно принудительно открыть клавиатуру и отправить нажатые символы на клавиатуре на сервер.Android Lollipop принудительно открыта soft Клавиатура не принимает нажатия клавиш

Все работало нормально, пока мой телефон не был обновлен до Android Lollipop, и теперь неожиданно клавиатура открывается, но не реагирует на какие-либо взаимодействия. С другой стороны, все кнопки под раскладкой клавиатуры реагируют, когда я пытаюсь ввести буквы клавиатуры. Это означает, что раскладка клавиатуры позволяет все пропустить.

Я использую кнопку, чтобы открыть клавиатуру:

public void b_view_keyboard(View view) { 
    view.requestFocusFromTouch(); 

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

Для чтения нажатых кнопок, которые я использую обычный onKeyDown(int keyCode, KeyEvent event), который всегда работали большим до обновления Android Lollipop.

Я нашел другую почту «Android Lollipop soft keyboard doesn't accept keypresses with GL surface», где у человека возникла такая же проблема (также не было ответа от 26 марта 2015 года).

Я благодарю всех, кто может помочь мне с этой досадной проблемой,

Спасибо, Эдварда.

Я только что понял, что это происходит только в ландшафтной ориентации. Для моей цели я заставляю пейзажную ориентацию, а затем открывается полноэкранная клавиатура и беспорядок. Как я могу изменить тип ввода клавиатуры, чтобы не иметь полноэкранного параметра в коде, заставляя клавиатуру открываться? Помните, что нет EditText или аналогичного.

ответ

0

onKeyDown никогда не работал. Эта функция предназначена только для аппаратных клавиш: громкость, физическая клавиатура и т. Д. Единственный способ, который мог бы сработать, - это обмануть клавиатуру, считая, что вы являетесь нулевым входным соединением, и попытался войти в самый глупый возможный режим - и я даже не уверен, что это сработает тогда, и если бы это было сделано, это было бы только с подмножеством клавиатур. Единственный способ надежно вводить информацию с мягкой клавиатуры - это вернуть ваше представление InputConnection из onCreateInputConnection и реализовать функции нажатия клавиш и фиксации текста. Обратите внимание, что большинство клавиатур Android от VAST вообще не реализуют ключевые функции, они делают все через commitText и иногда составляют текст, поскольку они намного богаче API.

+0

Метод onKeyDown не является темой проблемы. Пожалуйста, воздержитесь от бесполезных комментариев. Спасибо. – Edward12345

+0

Это проблема. 100% проблема. Пожалуйста, перестань думать, что знаешь лучше, чем кто-то, кто 4 года писал на клавиатуре Android. –

+0

Hello Gabe Sechan. Я приписываю. Я не пытался оскорбить человека с гораздо большим опытом, чем я. Я только получил информацию о решении моих проблем из разных тем, когда речь заходит о прослушивании мягких клавиатурных нажатий. – Edward12345

Смежные вопросы