What does "adb shell ime list" commands do? What do the following two commands mean?

adb shell ime list -s
adb shell ime list


and why don't they return anything at all? See code below:

aneesh@nb-14:~$ adb shell ime list -s
aneesh@nb-14:~$ adb shell ime list
aneesh@nb-14:~$ adb shell ime list -a
jp.co.omronsoft.openwnn/.OpenWnnJAJP:
  mId=jp.co.omronsoft.openwnn/.OpenWnnJAJP mSettingsActivityName=jp.co.omronsoft.openwnn.OpenWnnControlPanelJAJP
  mIsDefaultResId=0x0
  Service:
...
... etc.


I found no manual entry for these commands. It suggested that I did mandb to update the manual entries list. Googled too! But these efforts were in vain.

Any help is appreciated!
You won't find anything about this in the man page on your desktop, nor the usage information for adb because this isn't an adb command. Remember that adb shell foo starts a shell on the device and runs the command foo there. It would be like looking in the ssh man page to find out what ssh myserver rm -rf * does.

The command you want help with is ime list, and it only exists on the device, not your desktop. Running adb shell ime (with no further arguments) prints out the usage information for this command.

usage: ime list [-a] [-s]
       ime enable ID
       ime disable ID
       ime set ID

The list command prints all enabled input methods.  Use
the -a option to see all input methods.  Use
the -s option to see only a single summary line of each.

The enable command allows the given input method ID to be used.

The disable command disallows the given input method ID from use.

The set command switches to the given input method ID.


"Enabled" in this description doesn't refer to the "enabled" field in the manifest (that is, the one printed out under ServiceInfo), but rather whether the IME is turned on in the settings. It might be a little confusing to have two different things called "enabled", but don't forget that adb is a debugging tool for programmers, who are expected to understand such things. End-users shouldn't need to run this command, since the list of IMEs is accessible through the device settings.

From this description, if you get output with ime list -a but not ime list, that tells you that no input methods are currently enabled in the settings.