android.view.inputmethod.InputConnection |
Known Indirect Subclasses |
The InputConnection interface is the communication channel from an InputMethod back to the application that is receiving its input. It is used to perform such things as reading text around the cursor, committing text to the text box, and sending raw key events to the application.
Implementations of this interface should generally be done by subclassing BaseInputConnection.
Constants | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
int | GET_EXTRACTED_TEXT_MONITOR | Flag for use with getExtractedText(ExtractedTextRequest, int) to indicate you would like to receive updates when the extracted text changes. | |||||||||
int | GET_TEXT_WITH_STYLES | Flag for use with getTextAfterCursor(int, int) and getTextBeforeCursor(int, int) to have style information returned along with the text. |
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Tell the editor that you are starting a batch of editor operations.
| |||||||||||
Clear the given meta key pressed states in the given input connection.
| |||||||||||
Commit a completion the user has selected from the possible ones
previously reported to InputMethodSession.displayCompletions().
| |||||||||||
Commit text to the text box and set the new cursor position.
| |||||||||||
Delete leftLength characters of text before the current cursor
position, and delete rightLength characters of text after the
current cursor position, excluding composing text.
| |||||||||||
Tell the editor that you are done with a batch edit previously
initiated with endBatchEdit().
| |||||||||||
Have the text editor finish whatever composing text is currently
active.
| |||||||||||
Retrieve the current capitalization mode in effect at the current
cursor position in the text.
| |||||||||||
Retrieve the current text in the input connection's editor, and monitor
for any changes to it.
| |||||||||||
Get n characters of text after the current cursor position.
| |||||||||||
Get n characters of text before the current cursor position.
| |||||||||||
Perform a context menu action on the field.
| |||||||||||
Have the editor perform an action it has said it can do.
| |||||||||||
API to send private commands from an input method to its connected
editor.
| |||||||||||
Called by the IME to tell the client when it switches between fullscreen
and normal modes.
| |||||||||||
Send a key event to the process that is currently attached through
this input connection.
| |||||||||||
Set composing text around the current cursor position with the given text,
and set the new cursor position.
| |||||||||||
Set the selection of the text editor.
|
Flag for use with getExtractedText(ExtractedTextRequest, int) to indicate you would like to receive updates when the extracted text changes.
Flag for use with getTextAfterCursor(int, int) and getTextBeforeCursor(int, int) to have style information returned along with the text. If not set, you will receive only the raw text. If set, you may receive a complex CharSequence of both text and style spans.
Tell the editor that you are starting a batch of editor operations. The editor will try to avoid sending you updates about its state until endBatchEdit() is called.
Clear the given meta key pressed states in the given input connection.
states | The states to be cleared, may be one or more bits as per KeyEvent.getMetaState(). |
---|
Commit a completion the user has selected from the possible ones previously reported to InputMethodSession.displayCompletions(). This will result in the same behavior as if the user had selected the completion from the actual UI.
text | The committed completion. |
---|
Commit text to the text box and set the new cursor position. Any composing text set previously will be removed automatically.
text | The committed text. |
---|---|
newCursorPosition | The new cursor position around the text. If > 0, this is relative to the end of the text - 1; if <= 0, this is relative to the start of the text. So a value of 1 will always advance you to the position after the full text being inserted. Note that this means you can't position the cursor within the text, because the editor can make modifications to the text you are providing so it is not possible to correctly specify locations there. |
Delete leftLength characters of text before the current cursor position, and delete rightLength characters of text after the current cursor position, excluding composing text.
leftLength | The number of characters to be deleted before the current cursor position. |
---|---|
rightLength | The number of characters to be deleted after the current cursor position. |
Tell the editor that you are done with a batch edit previously initiated with endBatchEdit().
Have the text editor finish whatever composing text is currently active. This simply leaves the text as-is, removing any special composing styling or other state that was around it. The cursor position remains unchanged.
Retrieve the current capitalization mode in effect at the current cursor position in the text. See TextUtils.getCapsMode for more information.
This method may fail either if the input connection has become invalid (such as its process crashing) or the client is taking too long to respond with the text (it is given a couple seconds to return). In either case, a 0 is returned.
reqModes | The desired modes to retrieve, as defined by TextUtils.getCapsMode. These constants are defined so that you can simply pass the current TextBoxAttribute.contentType value directly in to here. |
---|
Retrieve the current text in the input connection's editor, and monitor for any changes to it. This function returns with the current text, and optionally the input connection can send updates to the input method when its text changes.
This method may fail either if the input connection has become invalid (such as its process crashing) or the client is taking too long to respond with the text (it is given a couple seconds to return). In either case, a null is returned.
request | Description of how the text should be returned. |
---|---|
flags | Additional options to control the client, either 0 or GET_EXTRACTED_TEXT_MONITOR. |
Get n characters of text after the current cursor position.
This method may fail either if the input connection has become invalid (such as its process crashing) or the client is taking too long to respond with the text (it is given a couple seconds to return). In either case, a null is returned.
n | The expected length of the text. |
---|---|
flags | Supplies additional options controlling how the text is returned. May be either 0 or GET_TEXT_WITH_STYLES. |
Get n characters of text before the current cursor position.
This method may fail either if the input connection has become invalid (such as its process crashing) or the client is taking too long to respond with the text (it is given a couple seconds to return). In either case, a null is returned.
n | The expected length of the text. |
---|---|
flags | Supplies additional options controlling how the text is returned. May be either 0 or GET_TEXT_WITH_STYLES. |
Perform a context menu action on the field. The given id may be one of: selectAll, startSelectingText, stopSelectingText, cut, copy, paste, copyUrl, or switchInputMethod
Have the editor perform an action it has said it can do.
editorAction | This must be one of the action constants for EditorInfo.editorType, such as EditorInfo.EDITOR_ACTION_GO. |
---|
API to send private commands from an input method to its connected editor. This can be used to provide domain-specific features that are only known between certain input methods and their clients. Note that because the InputConnection protocol is asynchronous, you have no way to get a result back or know if the client understood the command; you can use the information in EditorInfo to determine if a client supports a particular command.
action | Name of the command to be performed. This must be a scoped name, i.e. prefixed with a package name you own, so that different developers will not create conflicting commands. |
---|---|
data | Any data to include with the command. |
Called by the IME to tell the client when it switches between fullscreen and normal modes. This will normally be called for you by the standard implementation of InputMethodService.
Send a key event to the process that is currently attached through this input connection. The event will be dispatched like a normal key event, to the currently focused; this generally is the view that is providing this InputConnection, but due to the asynchronous nature of this protocol that can not be guaranteed and the focus may have changed by the time the event is received.
This method can be used to send key events to the application. For example, an on-screen keyboard may use this method to simulate a hardware keyboard. There are three types of standard keyboards, numeric (12-key), predictive (20-key) and ALPHA (QWERTY). You can specify the keyboard type by specify the device id of the key event.
You will usually want to set the flag KeyEvent.FLAG_SOFT_KEYBOARD on all key event objects you give to this API; the flag will not be set for you.
event | The key event. |
---|
Set composing text around the current cursor position with the given text, and set the new cursor position. Any composing text set previously will be removed automatically.
text | The composing text with styles if necessary. If no style object attached to the text, the default style for composing text is used. See {#link android.text.Spanned} for how to attach style object to the text. {#link android.text.SpannableString} and {#link android.text.SpannableStringBuilder} are two implementations of the interface {#link android.text.Spanned}. |
---|---|
newCursorPosition | The new cursor position around the text. If > 0, this is relative to the end of the text - 1; if <= 0, this is relative to the start of the text. So a value of 1 will always advance you to the position after the full text being inserted. Note that this means you can't position the cursor within the text, because the editor can make modifications to the text you are providing so it is not possible to correctly specify locations there. |
Set the selection of the text editor. To set the cursor position, start and end should have the same value.