See Also: InputMethod Members
The InputMethod interface represents an input method which can generate key events and text, such as digital, email addresses, CJK characters, other language characters, and etc., while handling various input events, and send the text back to the application that requests text input. See Android.Views.InputMethods.InputMethodManager for more general information about the architecture.
Applications will not normally use this interface themselves, instead relying on the standard interaction provided by Android.Widget.TextView and Android.Widget.EditText.
Those implementing input methods should normally do so by deriving from Android.InputMethodServices.InputMethodService or one of its subclasses. When implementing an input method, the service component containing it must also supply a InputMethod.ServiceMetaData meta-data field, referencing an XML resource providing details about the input method. All input methods also must require that clients hold the NoType:android/Manifest$permission;Href=../../../../reference/android/Manifest.permission.html#BIND_INPUT_METHOD in order to interact with the service; if this is not required, the system will not use that input method, because it can not trust that it is not compromised.
The InputMethod interface is actually split into two parts: the interface here is the top-level interface to the input method, providing all access to it, which only the system can access (due to the BIND_INPUT_METHOD permission requirement). In addition its method InputMethod.createSession(android.view.inputmethod.InputMethod.SessionCallback) can be called to instantate a secondary Android.Views.InputMethods.IInputMethodSession interface which is what clients use to communicate with the input method.