Take the 2-minute tour ×
Android Enthusiasts Stack Exchange is a question and answer site for enthusiasts and power users of the Android operating system. It's 100% free, no registration required.

My Android 2.3.3 emulator has four different keyboards:

  1. Japenese keyboard
  2. Chinese keyboard
  3. Android keyboard
  4. Sample Soft keyboard

I uncheck all of them so that I can use the hardware keyboard. After a few seconds, it gives an error message saying that the process com.android.inputmethod.latin not responding, with a Force Close button. Moreover, I close and restart my emulator to find all the keyboards checked!

The reason why I want all unchecked is as follows:

When click the cursor to a position where I want to insert some text (at least on Whatsapp, I face this problem), the cursor remains there for 3 to 10 seconds (!!) and then the keyboard shows up on screen and the cursor goes back to where it was! This is not the case when all the on-screen keyboards are disabled.

How do I make the keyboard disabling setting permanent?

UPDATE: This was beyond my imagination and very annoying. The input methods other than soft keyboard are back and even enabled once I rebooted the emulator! Why does the sdk just refuse to retain the settings??

share|improve this question

1 Answer 1

up vote 3 down vote accepted

DONE: I backed up all my contents of my old emulator, created a fresh emulator using

android create avd -t <TargetID> -n <EmulatorName> -a --abi <CPU/ABI-Used>

To aid finding out the correct value of <TargetID> and the admissible values <CPU/ABI-Used> corresponding the same as per your choice of the API level, I used

android list targets

You will then find that the Snapshot option is available, when you edit the same AVD from the Android Virtual Device Manager. So check the snapshot. And when you launch, be sure you have checked "Launch from Snapshot" and "Save to Snapshot" options. Now use the rm commands in the adb shell to remove the IMEs. (I will make it clear soon how one does that) You close and next time you open it through emulator command, it loads from snapshot and the permanence of the IME settings (or for that matter any system settings) is achieved!

(P.S.: Only when you change the hardware configuration will you need to actually reboot, in which case you cannot launch from snapshot as it was saved for a different hardware configuration!)

As the question indicates, all I want is that my hardware keyboard is active and I really don't care about the 4 input methods there. It never occurred to me that I could simply remove all IMEs: Here's how:

Mount the /system folder. Retrieve the apk names of the IMEs by going into /system/app and displaying its contents:

aneesh@nb-14:~$ adb shell mount -rw -o remount /dev/block/mtdblock0 /system
aneesh@nb-14:~$ adb shell
# cd /system/app
# ls
Phone.apk
Development.apk
Email.apk
Calculator.apk
...
..
etc.

Next just do

rm <IMEapkname>.apk

For instance in case of the Japanese IME one executes

rm /system/app/PinyinIME.apk

Since this trick, for me, didn't work thus far for the sample soft keyboard:

I came out of the adb shell and did:

adb uninstall com.example.android.softkeyboard

UPDATE: Once you ensure that the snapshot has saved properly (try launching from snapshot via terminal/AVD manager, it must not produce errors) and don't want to make further changes to the system applications or hardware configurations, do launch the emulator with the -no-snapshot-save option:

emulator -no-snapshot-save -avd Andreud

so that you can launch from snapshot like before and avoid aberrations that occur while saving to snapshot (lest it should produce error saying it was saved for a different hardware configuration). Moreover you can save some valuable seconds it takes to save the snapshot. So this way your overall android emulator experience improves!

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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