directory search
android Manifest Manifest.permission Manifest.permission_group android.accessibilityservice AccessibilityService android.accounts Account android.app NotificationManager android.bluetooth BluetoothAdapter BluetoothClass BluetoothClass.Device BluetoothClass.Device.Major BluetoothClass.Service BluetoothDevice BluetoothServerSocket BluetoothSocket android.content SharedPreferences android.database.sqlite SQLiteCursorDriver SQLiteOpenHelper android.graphics Bitmap android.location LocationListener Geocoder GpsStatus GpsStatus.Listener GpsStatus.NmeaListener GpsSatellite android.media AudioFormat AsyncPlayer AudioRecord AudioRecord.OnRecordPositionUpdateListener ThumbnailUtils AudioManager android.net TrafficStats MailTo LocalSocket android.os AsyncTask AsyncTask.Status CountDownTimer Message MessageQueue HandlerThread android.text Html android.util JsonWriter android.view ContextMenu ContextMenu.ContextMenuInfo Display ViewManager View ViewStub ViewTreeObserver ViewParent WindowManager GestureDetector Gravity MenuInflater ScaleGestureDetector SoundEffectConstants android.view.inputmethod InputConnection InputMethod InputMethodSession BaseInputConnection InputMethodManager android.widget AbsListView AbsListView.LayoutParams AbsListView.OnScrollListener AbsListView.RecyclerListener AbsoluteLayout AbsoluteLayout.LayoutParams AbsSeekBar AbsSpinner AdapterView AdapterView.AdapterContextMenuInfo AdapterView.OnItemLongClickListener AdapterView.OnItemSelectedListener AdapterView.OnItemClickListener AnalogClock BaseAdapter BaseExpandableListAdapter Button CheckBox CheckedTextView Checkable Chronometer Chronometer.OnChronometerTickListener CompoundButton CompoundButton.OnCheckedChangeListener CursorAdapter CursorTreeAdapter DatePicker DatePicker.OnDateChangedListener DialerFilter DigitalClock EditText Filter Filter.FilterListener Filter.FilterResults ExpandableListAdapter ExpandableListView.OnChildClickListener ExpandableListView.OnGroupClickListener ExpandableListView.OnGroupCollapseListener ExpandableListView.OnGroupExpandListener Filterable Gallery Gallery.LayoutParams GridView GridLayout GridLayout.Alignment RadioGroup ImageView ImageView.ScaleType HorizontalScrollView ImageButton ImageSwitcher FilterQueryProvider ListAdapter ListView MediaController MultiAutoCompleteTextView MultiAutoCompleteTextView.CommaTokenizer MultiAutoCompleteTextView.Tokenizer QuickContactBadge RadioButton RatingBar RatingBar.OnRatingBarChangeListener RelativeLayout RemoteViews ResourceCursorAdapter ResourceCursorTreeAdapter Scroller ScrollView SearchView SearchView.OnCloseListener SearchView.OnQueryTextListener SearchView.OnSuggestionListener SeekBar SeekBar.OnSeekBarChangeListener SimpleAdapter SimpleAdapter.ViewBinder SimpleCursorAdapter SimpleCursorAdapter.CursorToStringConverter SimpleCursorAdapter.ViewBinder SimpleCursorTreeAdapter SimpleCursorTreeAdapter.ViewBinder SimpleExpandableListAdapter SlidingDrawer SlidingDrawer.OnDrawerCloseListener SlidingDrawer.OnDrawerOpenListener SlidingDrawer.OnDrawerScrollListener Spinner SpinnerAdapter WrapperListAdapter TabHost TabHost.TabSpec TextView TimePicker TimePicker.OnTimeChangedListener Toast TableLayout TableLayout.LayoutParams TableRow TableRow.LayoutParams TabWidget TextSwitcher ToggleButton TwoLineListItem VideoView ViewAnimator ViewFlipper ViewSwitcher ViewSwitcher.ViewFactory ZoomButtonsController ZoomButtonsController.OnZoomListener ZoomButton ZoomControls dalvik.system DexFile
characters


InputConnection

版本:Android 2.3 r1

 

结构

继承关系

public interface InputConnection

        

android.view.inputmethod.InputConnection

 

子类及间接子类

间接子类

BaseInputConnection, InputConnectionWrapper

 

类概述

InputConnection接口是接收输入的应用程序与InputMethod间的通讯通道。它可以完成以下功能,如读取光标周围的文本,向文本框提交文本,向应用程序提交原始按键事件。

 BaseInputConnection的子类应实现这一接口。

 

常量

public static final int GET_EXTRACTED_TEXT_MONITOR

标志,用在getExtractedText(ExtractedTextRequest, int)中,表示提取的文本变化时你想接收到更新。

常量值: 1 (0x00000001)

 

public static final int GET_TEXT_WITH_STYLES

标志,用在getTextAfterCursor(int, int)getTextBeforeCursor(int, int)中,表明返回的文本中包含样式。不设置时,你将仅接收原始文本。设置时,你将收到复合的CharSequence,包括文本和样式段。

常量值: 1 (0x00000001)

 

公共方法

public abstract boolean beginBatchEdit ()

通知编辑器你将开始批量编辑操作。编辑器尽量避免向你发送状态更新,直到调用endBatchEdit()为止。

 

public abstract boolean clearMetaKeyStates (int states)

在指定的输入连接中清除指定的元键(meta key)按下状态。

参数

states     清除的状态,可以是KeyEvent.getMetaState()中的一位或多位结果。

返回值

             成功返回true,当连接无效时返回flase

 

public abstract boolean commitCompletion (CompletionInfo text)

提交用户的选择,选择先前向 InputMethodSession.displayCompletions()提交的选项中的一个。其结果就像用户从实际UI中做出一样。

参数

text          提交的结果。

返回值

             成功返回true,当连接无效时返回flase

 

public abstract boolean commitText (CharSequence text, int newCursorPosition)

向文本框提交文本并设置新的光标位置。之前设置的正编辑文字将自动删除。

参数

text          提交的文本。

newCursorPosition          文本范围内新的光标位置。如果大于0,从提交文本末尾-1处计起;<= 0,提交文本开始处计起。所以值为1时,光标将定位于你刚刚插入文本之后。注意你不能光标定位于提交文本中,因为编辑器可以修改你提供的文本,所以不必将光标定位在哪。

返回值

             成功返回true,当连接无效时返回flase

 

public abstract boolean deleteSurroundingText (int leftLength, int rightLength)

删除当前光标前的leftLength个字符,并删除当前光标后的rightLength个字符,不包联想输入(composing)的文字。

参数

leftLength       删除的当前光标之前字符个数。

rightLength     删除的当前光标之后字符个数。

返回值

             成功返回true,当连接无效时返回flase

 

public abstract boolean endBatchEdit ()

调用endBatchEdit()方法通知编辑器之前开始的批量编辑已完成。

 

public abstract boolean finishComposingText ()

强制结束文本编辑器,无论联想输入(composing text)是否激活。文本保持不变,移除任何与此文本的编辑样式或其他状态。光标保持不变。

 

public abstract int getCursorCapsMode (int reqModes)

取得当前光标位置的文本的大小写状态。参见TextUtils.getCapsMode 取得更多信息。此方法在输入连接(connection)无效(如线程冲突)或客户端等待时间过长(等待几秒返回)时可能会失败。上述情况时返回0

参数

reqModes       依据TextUtils.getCapsMode定义取得期望的状态。通过已定义的常数,你可以轻易地传递TextBoxAttribute.contentType当前。

返回值

             返回当前有效的大小写状态。

 

public abstract ExtractedText getExtractedText (ExtractedTextRequest request, int flags)

获取当前输入连接的编辑器中的当前文本,并监视是否有变化。函数返回当前文本,当文本变化时输入连接可选择性向输入法发送更新。

此方法在输入联接无效时(如线程冲突)或客户端等待时间过长(等待几秒返回)时可能会失败。上述情况时返回null值。

参数

request   描述文本如何返回

flags        控制客户端的附加选项,0GET_EXTRACTED_TEXT_MONITOR

返回值

             返回一个ExtractedText对象描述文本视窗的状态,及所包含的提取文本。

 

public abstract CharSequence getSelectedText (int flags)

如果有的话取得所选的文本。

此方法在输入连接无效时(如线程冲突)或客户端等待时间过长(等待几秒返回)时可能会失败。上述情况时返回null值。

参数

flags        提供附加选项控制,控制文本如何返回。可为0 GET_TEXT_WITH_STYLES

返回值

             如果有的话返回当前选取文本,如果没有文本被选中返回null

 

public abstract CharSequence getTextAfterCursor (int n, int flags)

取得当前光标位置后的 n 个字符文本。

此方法在输入连接无效时(如线程冲突)或客户端等待时间过长(等待几秒返回)时可能会失败。上述情况时返回null值。

参数

n      期望的文本长度

flags        提供附加选项控制,控制文本如何返回。可为0 GET_TEXT_WITH_STYLES

返回值

             返回当前光标后的文本,返回的文本长度可能小于 n

 

public abstract CharSequence getTextBeforeCursor (int n, int flags)

取得当前光标位置前的 n 个字符文本。

本此方法在输入连接无效(如线程冲突)或客户端等待时间过长(等待几秒返回)时可能会失败。上述情况时返回null值。

参数

n      期望的文本长度

flags        提供附加选项控制,控制文本如何返回。可为0 GET_TEXT_WITH_STYLES

返回值

             返回当前光标前的文本,返回的文本长度可能小于 n

 

public abstract boolean performContextMenuAction (int id)

在区域中执行调用上下文菜单动作,其id可能下列之一:selectAll, startSelectingText, stopSelectingText, cut, copy, paste, copyUrl, switchInputMethod

 

public abstract boolean performEditorAction (int editorAction)

让编辑器执行一个它可以完成的操作。

参数

editorAction   必须是动作常量EditorInfo.editorType中的一个,如EditorInfo.EDITOR_ACTION_GO

返回值

             成功返回true,如输入连接无效返回false

 

public abstract boolean performPrivateCommand (String action, Bundle data)

API从输入法向所连接的编辑器发送私有命令。这可用于提供仅用于特定输入法及其客户端功能的特定域(domain-specific)。注意,因为InputConnection协议是异步的,你无法取回结果或知道客户端是否懂得命令;你可能使用 EditorInfo来确定客户端是否支持某一命令。

参数

action      要执行的命令名称。必须是作用域名,前缀你自己的包名,这样不同的开发者就不会建立让人冲突的命令。

data         命令中的数据

返回值

             当命令发送后返回true(无论相关的编辑是否理解它),如输入连接无效返回false

 

public abstract boolean reportFullscreenMode (boolean enabled)

IME调用,通知客户端将在全屏与普通模式间切换。它在 InputMethodService的标准实现中被调用。

 

public abstract boolean sendKeyEvent (KeyEvent event)

向当前输入连接所附着的进程发送按键事件。事件像普通按键事件一样由当前焦点,通常是提供InputConnection的视图。但由于协议的异步性这一点并不总是这样,焦点可能在事件收到时发生改变。

本方法可用于向应用程序发送按键事件。如屏幕键盘可以用这一方法模拟硬件键盘。标准键盘有三种:数字(12键),预测键盘(20键)和字母(QWERTY)。你可以通过事件的设备码(device id)确定键盘类型。

在你向本API发送的所有按键事件中,你可能希望设置KeyEvent.FLAG_SOFT_KEYBOARD标志,但这一标志不可设置。

参数

event       按键事件

返回值

             成功返回true,当输入连接无效返回false

         参见

             KeyEvent

             NUMERIC

             PREDICTIVE

             ALPHA

 

public abstract boolean setComposingRegion (int start, int end)

将特定区域设为正在编辑文本。以前设置的正在编辑文本自动移除。文本使用默认正在编辑文本样式。(审核注:”composing text”的翻译还需要后期用例子来推测其含义。)

参数

start        正在编辑文本开始的位置

end          正在编辑文本结束的位置。

返回值

             成功返回true,当输入联接无效时返回false

 

public abstract boolean setComposingText (CharSequence text, int newCursorPosition)

将当前的光标旁正在联想文本(composing text)替代为给定文本,并设置新光标位置。以前设置的正在编辑文本自动移除。(译者注:

InputConnection ic = getCurrentInputConnection();

ic.setComposingText("Composi", 1);

参数

text          如必要正在编辑文本有样式。如文本没有附带样式对象,正在编辑文本将应用默认样式。见如何在文本上附加样式{#link android.text.Spanned}{#link android.text.SpannableString}{#link android.text.SpannableStringBuilder}是两种界面实现方式。

newCursorPosition          文本范围内新的光标位置。如果大于0,从提交文本末尾-1处计起;<= 0,提交文本开始处计起。所以值为1时,光标将定位于你刚刚插入文本之后。注意你不能光标定位于提交文本中,因为编辑器可以修改你提供的文本,所以不必将光标定位在哪。

返回值

             成功返回true,当输入联接无效时返回false

 

public abstract boolean setSelection (int start, int end)

设置文本编辑器的选定文本。设置到当前光标时,开始与结束取相同值。

返回值

             成功返回true,当输入联接无效时返回false

 

补充

文章链接

android sdk softkeyboard的自己解析(4)

         开源项目

                   wifikeyboard


Previous article: Next article: