The InputMethodManager
is a service that apps can use to interact with the system keyboards. Editors like EditText
also use it to indirectly notify the keyboards of changes (for example, updateSelection
).
I can get a reference to the InputMethodManager
like this
InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
My problem is that this seems to be just for system keyboards. Can I use the InputMethodManager
for a custom in-app keyboard? If it was for just one isolated app I wouldn't care but I am including a custom keyboard in a library that will be used in many apps. I need a standard way for editors to communicate with the keyboard.
Do I have to write my own input method manager or is there a way to use the standard InputMethodManager
with my custom in-app keyboard?
Update
Here are some clues for how I might implement my own custom input method manager if there is no way to use the standard one.
InputMethodManager
(documentation) (source code)InputMethod
interfaceInputMethodSession
interfaceKeyboardView.OnKeyboardActionListener
interface (keyboards implement it)InputMethodService
(keyboards extend this) (documentation) (source code)
InputMethodManager
because it involves security issues with the phone. However, I added the bounty just to make sure before I completely abandon the idea. – Confront