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

Не работает клавиатура Android

У меня возникла странная проблема, из-за правильной работы мягкой клавиатуры.

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

То, что видит пользователь, заключается в том, что, когда он нажимает кнопку символа на мягкой клавиатуре, в каждом приложении ничего не отображается в EditText. Как я уже сказал, странная проблема влияет на всю систему, и пользователь ничего не может написать.

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

Когда клавиатура не работает, и пользователь нажимает кнопки клавиатуры, вы можете видеть в logcat:

WARN/IInputConnectionWrapper(1628): sendKeyEvent on inactive InputConnection
WARN/IInputConnectionWrapper(1628): getCursorCapsMode on inactive InputConnection
WARN/IInputConnectionWrapper(1628): endBatchEdit on inactive InputConnection

Как InputConnection может стать неактивным и есть способ его активировать?

Мне было интересно, есть ли у кого-то такая проблема и в чем причина?

4b9b3361

Ответ 1

Похоже, ваше входное соединение закрыто неправильно. У меня была аналогичная проблема и я исправил ее следующим образом:

EditText editTextLogin = (EditText) findViewById(R.id.editTextLogin);
editTextLogin.requestFocus();
InputMethodManager inputManager = (InputMethodManager)context.getSystemService(INPUT_METHOD_SERVICE);
inputManager.restartInput(editTextLogin);

Ответ 2

У меня была такая же проблема с моей nexus 7 и samsung s3. Я создал приложение с Android 4.4. Обычно клавиатура не появлялась в первый раз, или если я скрываю клавиатуру, она никогда больше не появлялась. Источником проблемы был android:textIsSelectable="true". Если я удалил все мои editText, эта ошибка исчезла.

Ответ 3

У меня была аналогичная проблема в некоторых устройствах. Через 2 дня смены кода я обнаружил, что источником проблемы является строка android:selectAllOnFocus="true" в моей EditText

Ответ 4

1) Вы пытались переопределить onPause и убить любые подписи своего приложения:

System.runFinalizersOnExit(true);
System.exit(1);

Мне интересно, если это не поможет, можете ли вы действительно доказать, что это приложение, которое вызывает зависание?

2) Вы реализуете какой-либо тип InputConnection самостоятельно?

Даже если это не так, ваше приложение может повесить одну из них по какой-то причине, эта цитата из здесь может иметь какое-то отношение к вашему проблема (фокус):

* Только активный клиент InputConnection будет принимать операции. МВФ сообщает каждому процессу клиента, является ли он активным, и структура обеспечивает, чтобы в неактивных процессах обращались к текущему InputConnection будет проигнорирован. Это гарантирует, что текущий IME может только доставлять события и текстовые изменения в пользовательский интерфейс, который пользователь видит как находясь в фокусе.