InputMethodpublic interface InputMethod 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
{@link InputMethodManager} for more general information about the
architecture.
Applications will not normally use this interface themselves, instead
relying on the standard interaction provided by
{@link android.widget.TextView} and {@link android.widget.EditText}.
Those implementing input methods should normally do so by deriving from
{@link InputMethodService} or one of its subclasses. When implementing
an input method, the service component containing it must also supply
a {@link #SERVICE_META_DATA} meta-data field, referencing an XML resource
providing details about the input method. All input methods also must
require that clients hold the
{@link android.Manifest.permission#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
{@link #createSession(android.view.inputmethod.InputMethod.SessionCallback)}
can be called to instantate a secondary {@link InputMethodSession} interface
which is what clients use to communicate with the input method. |
Fields Summary |
---|
public static final String | SERVICE_INTERFACEThis is the interface name that a service implementing an input
method should say that it supports -- that is, this is the action it
uses for its intent filter.
To be supported, the service must also require the
{@link android.Manifest.permission#BIND_INPUT_METHOD} permission so
that other applications can not abuse it. | public static final String | SERVICE_META_DATAName under which an InputMethod service component publishes information
about itself. This meta-data must reference an XML resource containing
an
<{@link android.R.styleable#InputMethod input-method}>
tag. | public static final int | SHOW_EXPLICITFlag for {@link #showSoftInput}: this show has been explicitly
requested by the user. If not set, the system has decided it may be
a good idea to show the input method based on a navigation operation
in the UI. | public static final int | SHOW_FORCEDFlag for {@link #showSoftInput}: this show has been forced to
happen by the user. If set, the input method should remain visible
until deliberated dismissed by the user in its UI. |
Methods Summary |
---|
public void | attachToken(android.os.IBinder token)Called first thing after an input method is created, this supplies a
unique token for the session it has with the system service. It is
needed to identify itself with the service to validate its operations.
This token must not be passed to applications, since
it grants special priviledges that should not be given to applications.
Note: to protect yourself from malicious clients, you should only
accept the first token given to you. Any after that may come from the
client.
| public void | bindInput(InputBinding binding)Bind a new application environment in to the input method, so that it
can later start and stop input processing.
Typically this method is called when this input method is enabled in an
application for the first time.
| public void | changeInputMethodSubtype(InputMethodSubtype subtype)Notify that the input method subtype is being changed in the same input method.
| public void | createSession(android.view.inputmethod.InputMethod$SessionCallback callback)Create a new {@link InputMethodSession} that can be handed to client
applications for interacting with the input method. You can later
use {@link #revokeSession(InputMethodSession)} to destroy the session
so that it can no longer be used by any clients.
| public void | hideSoftInput(int flags, android.os.ResultReceiver resultReceiver)Request that any soft input part of the input method be hidden from the user.
| public void | restartInput(InputConnection inputConnection, EditorInfo attribute)This method is called when the state of this input method needs to be
reset.
Typically, this method is called when the input focus is moved from one
text box to another.
| public void | revokeSession(InputMethodSession session)Disable and destroy a session that was previously created with
{@link #createSession(android.view.inputmethod.InputMethod.SessionCallback)}.
After this call, the given session interface is no longer active and
calls on it will fail.
| public void | setSessionEnabled(InputMethodSession session, boolean enabled)Control whether a particular input method session is active.
| public void | showSoftInput(int flags, android.os.ResultReceiver resultReceiver)Request that any soft input part of the input method be shown to the user.
| public void | startInput(InputConnection inputConnection, EditorInfo info)This method is called when the application starts to receive text and it
is ready for this input method to process received events and send result
text back to the application.
| public void | unbindInput()Unbind an application environment, called when the information previously
set by {@link #bindInput} is no longer valid for this input method.
Typically this method is called when the application changes to be
non-foreground.
|
|