1

Alright so I try to get into the 'Language and Input' sub-setting on the 'Settings' menu, and when I click on it a message appears saying: "Unfortunately, Settings has stopped working". This only happens with 'Language and Input'.

I have Android 4.2.2 installed, on an Acer V370 (Liquid E2) phone.

So far I've tried clearing data from the 'Settings' app and fixing permissions using ROM manager, both didn't work.

What I'm really trying to do is get a working keyboard on my phone, as for reasons unknown I have no keyboard to type on the phone. So, I don't really care about fixing the 'Languages and Input' setting as long as there's a way to put a keyboard app in my phone again.

1

Note: the commands in this solution requires setup in PC and the solution is tested on Android 4.2.1, 5.0.2 and 5.1.1.


If you don't have any keyboard app installed in the system, then either use web version of Play Store to remotely install a keyboard app in your system (requires active internet connection in your device) or obtain the APK of your keyboard from somewhere somehow and install it in your system. You may either install it:

Once the app is setup, execute this command on PC:

adb shell ime list -a

It will list all the available (enabled or not) IME (Input Method) services in your system.

Demo output:

com.android.inputmethod.latin/.LatinIME:
  mId=com.android.inputmethod.latin/.LatinIME mSettingsActivityName=com.android.inputmethod.latin.settings.SettingsActivity
  mIsDefaultResId=0x7f070000
  Service:
    priority=0 preferredOrder=0 match=0x108000 specificIndex=-1 isDefault=false
    ServiceInfo:
      name=com.android.inputmethod.latin.LatinIME
      packageName=com.android.inputmethod.latin
      labelRes=0x7f08003a nonLocalizedLabel=null icon=0x0 banner=0x0
      enabled=true exported=true processName=com.android.inputmethod.latin
      permission=android.permission.BIND_INPUT_METHOD
      flags=0x0
net.zhdev.ctrlvkeyboard/.CtrlVKeyboard:
  mId=net.zhdev.ctrlvkeyboard/.CtrlVKeyboard mSettingsActivityName=null
  mIsDefaultResId=0x0
  Service:
    priority=0 preferredOrder=0 match=0x108000 specificIndex=-1 isDefault=false
    ServiceInfo:
      name=net.zhdev.ctrlvkeyboard.CtrlVKeyboard
      packageName=net.zhdev.ctrlvkeyboard
      labelRes=0x7f0b0015 nonLocalizedLabel=null icon=0x0 banner=0x0
      enabled=true exported=true processName=net.zhdev.ctrlvkeyboard
      permission=android.permission.BIND_INPUT_METHOD
      flags=0x0
com.touchtype.swiftkey/com.touchtype.KeyboardService:
  mId=com.touchtype.swiftkey/com.touchtype.KeyboardService mSettingsActivityName=com.touchtype.settings.TouchTypeKeyboardSettings
  mIsDefaultResId=0x0
  Service:
    priority=0 preferredOrder=0 match=0x108000 specificIndex=-1 isDefault=false
    ServiceInfo:
      name=com.touchtype.KeyboardService
      packageName=com.touchtype.swiftkey
      enabled=true exported=true processName=com.touchtype.swiftkey
      permission=android.permission.BIND_INPUT_METHOD
      flags=0x0

The highlighted strings next to mId= are the IDs of the keyboard apps available in my system.

In any ID, the string before / is the package name of the keyboard app. Example: for Swiftkey keyboard, the mId is:

com.touchtype.swiftkey/com.touchtype.KeyboardService

The string com.touchtype.swiftkey is the package name of Swiftkey app. Package name is what will help you to find the appropriate mID that you should use to enable a particular keyboard app.

To know the package name of an app, follow View app's full package name?

Once you've the appropriate ID, use it to make your app the default keyboard in your system. Do:

# 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

Try opening an app which requires input from a keyboard. You would be seeing your keyboard app.

(Click image to enlarge; courtesy of OP)

IMG:

0

A suggestion could be to install ANY alternate keyboard, and choose that one as the default keyboard temporarily. The earliest technique I learned to do this was to start any app that required a text input field entry (even Internet will do). Hard press on the text field, and select "Input Method" which will allow you to try to set the newly downloaded as the default keyboard.

Once selected, it is possible the Settings > Language & Input, which failed earlier, will not fail to open when triggered. Use the normal functionality to restore the desired keyboard, if different, then delete the installed one that was a temporary workaround.

UPDATE: I have just found this wiki that demonstrates a similar technique. I have performed this just now on my Samsung Galaxy phone, and tablet, to prove its worth. Essentially, it uses Google Search text input, in concert with the Notification Bar, which now includes a shortcut to Choose Input Method. I got it to work consistently from the second try: Open, tap the text input field, pull down Notification Bar, proceed.

  • Hey Firelord, what do you mean "third section"? Paste the exact part please. – Corsaw Feb 8 '16 at 16:55
  • 1
    This doesn't work at all, all I get is the copy/paste etc options, but no "input options" menu. – Corsaw Feb 8 '16 at 17:07
  • It may just depend on what application, and what text field allows this, or maybe your provider's OS, or any number of things that may have happened since I learned this technique, many years ago, that moved or removed this capability. – wbogacz Feb 8 '16 at 18:35
  • Searched for, and found, an alternate method, similar to the suggested one. See additional paragraph in answer (and hyperlink). – wbogacz Feb 8 '16 at 18:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.