Поднастройка «Языки и ввод» приводит к сбою настроек, необходимо включить ее для установки клавиатуры

Хорошо, поэтому я пытаюсь войти в поднастройку «Язык и ввод» в меню «Настройки», и когда я нажимаю на нее, появляется сообщение: «К сожалению, настройки перестали работать». Это происходит только с «Языком и вводом».

У меня установлен Android 4.2.2 на телефоне Acer V370 (Liquid E2).

До сих пор я пытался очистить данные из приложения «Настройки» и исправить разрешения с помощью диспетчера ПЗУ, оба не работали.

Что я действительно пытаюсь сделать, так это получить работающую клавиатуру на своем телефоне, так как по неизвестным причинам у меня нет клавиатуры для ввода текста на телефоне. Так что меня не волнует исправление настройки «Языки и ввод», пока есть способ снова установить клавиатурное приложение на мой телефон.

Ответы (2)

Примечание . Команды в этом решении требуют настройки на ПК, и решение протестировано на Android 4.2.1, 5.0.2 и 5.1.1.


Если в вашей системе не установлено приложение для клавиатуры, то либо используйте веб-версию Play Store, чтобы удаленно установить приложение для клавиатуры в вашей системе (требуется активное подключение к Интернету на вашем устройстве), либо каким-то образом получите APK вашей клавиатуры . и установите его в своей системе. Вы можете либо установить его:

После установки приложения выполните эту команду на ПК:

adb shell ime list -a

В нем будут перечислены все доступные (включенные или нет) службы IME (метод ввода) в вашей системе.

Демонстрационный вывод:

com.android.inputmethod.latin/.LatinIME:
  mId= com.android.inputmethod.latin/.LatinIME mSettingsActivityName=com.android.inputmethod.latin.settings.SettingsActivity
  mIsDefaultResId = 0x7f070000
  Услуга:
    приоритет = 0, предпочтительный порядок = 0, совпадение = 0x108000, специфический индекс = -1, isDefault = false
    Информация о сервисе:
      имя = com.android.inputmethod.latin.LatinIME
      packageName=com.android.inputmethod.latin
      labelRes=0x7f08003a nonLocalizedLabel=нулевой значок=0x0 баннер=0x0
      enabled=true exported=true имя_процесса=com.android.inputmethod.latin
      разрешение = android.permission.BIND_INPUT_METHOD
      флаги = 0x0
net.zhdev.ctrlvkeyboard/.CtrlVKeyboard:
  mId= net.zhdev.ctrlvkeyboard/.CtrlVKeyboard mSettingsActivityName=null
  mIsDefaultResId = 0x0
  Услуга:
    приоритет = 0, предпочтительный порядок = 0, совпадение = 0x108000, специфический индекс = -1, isDefault = false
    Информация о сервисе:
      имя=net.zhdev.ctrlvkeyboard.CtrlVKeyboard
      packageName=net.zhdev.ctrlvkeyboard
      labelRes=0x7f0b0015 nonLocalizedLabel=нулевой значок=0x0 баннер=0x0
      enabled=true exported=true имя_процесса=net.zhdev.ctrlvkeyboard
      разрешение = android.permission.BIND_INPUT_METHOD
      флаги = 0x0
com.touchtype.swiftkey/com.touchtype.KeyboardService:
  mId= com.touchtype.swiftkey/com.touchtype.KeyboardService mSettingsActivityName=com.touchtype.settings.TouchTypeKeyboardSettings
  mIsDefaultResId = 0x0
  Услуга:
    приоритет = 0, предпочтительный порядок = 0, совпадение = 0x108000, специфический индекс = -1, isDefault = false
    Информация о сервисе:
      имя = com.touchtype.KeyboardService
      packageName=com.touchtype.swiftkey
      enabled=true exported=true имя_процесса=com.touchtype.swiftkey
      разрешение = android.permission.BIND_INPUT_METHOD
      флаги = 0x0

Выделенные рядом строки mId=— это идентификаторы клавиатурных приложений, доступных в моей системе.

В любом идентификаторе строка перед /является именем пакета приложения клавиатуры. Пример: для клавиатуры Swiftkey mId:

com.touchtype.swiftkey/com.touchtype.KeyboardService

Строка com.touchtype.swiftkeyпредставляет собой имя пакета приложения Swiftkey. Имя пакета поможет вам найти соответствующий mID , который следует использовать для включения определенного приложения клавиатуры .

Чтобы узнать имя пакета приложения, выполните команду Просмотр полного имени пакета приложения?

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

# Note that it doesn't matter whether the IME is added into enabled input methods or not. Consider this a direct override.
# Replace ID with mId of your keyboard app

adb shell settings put secure default_input_method "ID"
adb shell content update --uri content://settings/secure --bind value:s:"ID"  --where "name='default_input_method'"  # alternative to above command
adb reboot  # optional

Попробуйте открыть приложение, требующее ввода с клавиатуры. Вы увидите свое приложение для клавиатуры.

(Нажмите на изображение, чтобы увеличить; любезно предоставлено OP)

ИЗОБРАЖЕНИЕ:

Можно предложить установить ЛЮБУЮ альтернативную клавиатуру и временно выбрать ее в качестве клавиатуры по умолчанию. Самый ранний метод, который я изучил для этого, заключался в запуске любого приложения, которое требовало ввода в поле ввода текста (подойдет даже Интернет). Сильно нажмите на текстовое поле и выберите «Метод ввода», который позволит вам попробовать установить только что загруженную клавиатуру в качестве клавиатуры по умолчанию.

После выбора возможно, что «Настройки»> «Язык и ввод», который ранее не работал, не перестанет открываться при срабатывании. Воспользуйтесь обычным функционалом, чтобы восстановить нужную клавиатуру, если отличается, то удалите установленную, что было временным обходным решением.

ОБНОВЛЕНИЕ: я только что нашел эту вики , которая демонстрирует подобную технику. Я только что выполнил это на своем телефоне и планшете Samsung Galaxy, чтобы доказать его ценность. По сути, он использует текстовый ввод Google Search в сочетании с панелью уведомлений, которая теперь включает ярлык для выбора метода ввода. У меня получилось стабильно работать со второй попытки: открыть, коснуться поля ввода текста, потянуть вниз панель уведомлений, продолжить.

Эй, Повелитель огня, что ты имеешь в виду под "третьей частью"? Вставьте точную часть, пожалуйста.
Это вообще не работает, все, что я получаю, это параметры копирования / вставки и т. Д., Но нет меню «параметры ввода».
Это может просто зависеть от того, какое приложение и какое текстовое поле разрешает это, или, может быть, ОС вашего провайдера, или любое количество вещей, которые могли произойти с тех пор, как я изучил эту технику много лет назад, что переместило или удалило эту возможность.
Искал и нашел альтернативный метод, похожий на предложенный. См. дополнительный абзац в ответе (и гиперссылку).