Thursday, 16 September 2010

Change Keyboard Automatically With Orientation, Using KeyboardManager

One of the more obvious settings missing from Android is the ability to use one keyboard, say Swype, in portrait orientation, and then automatically switch to another keyboard when the phone is in landscape.
This feature has been oft-requested, and is something that is strangely missing from many mobile OSes. Well, the clever clogs over at the XDA-Developers Nexus One forum have managed to figure it out with a little workaround.
However, the hack only works for those on rooted phones with access to the /system partition as Read-Write. Thankfully that is most phones, nowadays. In the words of the hack’s creator, ne0fhyk:
The application is rather simple so far. It shows you lists of the input method you have on your device, and allows you to specify different ones for portrait or landscape orientation.
It will then launch a service that’s triggered by orientation’s change events, and reset the input method based on your preference.
To do so, the service must run as system. Just copy the application under /system/app/.
Restarting after installation is recommended.
This is a work in progress. Occasionally, the keyboard switching shows lag. I am working on improving the app, so any feedback is appreciated.
I tried to install the hack myself, and it’s a little bit more complex than that.
1. Download the APK (there may be a newer version on XDA by the time you read this)
2. Install it as normal
3. Don’t try to open it, you will just get Force Close
4, Open Terminal on your phone or use adb shell  / adbWireless
5. Type “su” (may not be necessary in adb), your “$” prompt will change to “#”
6. Type “mount

image

7. Find the line near the top which mentions “/system”, noting the “ro” in the parentheses at the end of the line
8. Enter “mount –o rw,remount –t yaffs2 /dev/block/mtdblock3 /system”, replacing “mtdblock3” with whichever mtdblock your line says above.
9. Enter “mount” again, check that “ro” has changed to “rw”. This means you can now write to your /system partition.

image

10. Use “cd” to change to your app folder: “cd /data/app/
11. Find the installed KeyboardManager using “find *keyboard*

image

12. Move the keyboardmanager APK to your /system partition with the command “mv com.android.bg.keyboardmanager-1.apk /system/app
13. Now you want to reboot your system to load the application again, and also reset your /system partition to “ro” for security. Simply enter “reboot” and hit enter
14. Once your phone has restarted, open up Keyboard Manager from your application drawer
15. Choose which keyboards you’d like to use in which orientation, from the displayed drop-downs
image
Having used the app for a little bit, it does work, but it’s not instantaneous. It may take a few taps of the text entry field to work. The developer is definitely not done with this project, so at this stage it’s kind of a proof of concept, so don’t be surprised if the experience is a little buggy.
It’s great to see this issue finally, sort of, pretty much resolved. Check it out and leave your experiences in the comments below. Oh, and do a nandroid, k?

Download KeyboardManager  : Here

No comments:

Post a Comment