public interface InputMethod
android.view.inputmethod.InputMethod |
Known Indirect Subclasses |
InputMethod接口表示一种输入方法,它可以在处理各种输入事件时生成关键事件和文本,如数字,电子邮件地址,CJK字符,其他语言字符等,并将文本发送回请求文本的应用程序输入。 有关该体系结构的更多一般信息,请参见InputMethodManager
。
应用程序通常不会自己使用此接口,而是依赖于由 TextView
和 EditText
提供的标准交互。
实施输入法的人通常应该从InputMethodService
或其中一个子类派生。 在实现输入方法时,包含它的服务组件还必须提供一个SERVICE_META_DATA
元数据字段,引用提供输入方法详细信息的XML资源。 所有输入法也必须要求客户端持有BIND_INPUT_METHOD
才能与服务交互; 如果这不是必需的,系统将不会使用该输入法,因为它不能相信它没有受到损害。
InputMethod接口实际上分为两部分:这里的接口是输入方法的顶层接口,提供对它的所有访问,只有系统可以访问它(由于BIND_INPUT_METHOD权限要求)。 此外它的方法createSession(android.view.inputmethod.InputMethod.SessionCallback)
可以调用instantate二次InputMethodSession
接口这就是客户端使用与输入法进行通信。
Nested classes |
|
---|---|
interface |
InputMethod.SessionCallback
|
Constants |
|
---|---|
String |
SERVICE_INTERFACE 这是实现输入方法的服务应该说它支持的接口名称 - 也就是说,这是它用于其意图过滤器的操作。 |
String |
SERVICE_META_DATA InputMethod服务组件发布有关其自身的信息的名称。 |
int |
SHOW_EXPLICIT 标志为 |
int |
SHOW_FORCED 标志为 |
Public methods |
|
---|---|
abstract void |
attachToken(IBinder token) 在创建输入方法之后调用第一件事物时,它会为它与系统服务的会话提供唯一标记。 |
abstract void |
bindInput(InputBinding binding) 将新的应用程序环境绑定到输入法,以便稍后可以启动和停止输入处理。 |
abstract void |
changeInputMethodSubtype(InputMethodSubtype subtype) 通知输入法子类型在相同的输入法中正在更改。 |
abstract void |
createSession(InputMethod.SessionCallback callback) 创建一个新的可以交给客户端应用程序的 |
abstract void |
hideSoftInput(int flags, ResultReceiver resultReceiver) 要求用户隐藏输入法的任何软输入部分。 |
abstract void |
restartInput(InputConnection inputConnection, EditorInfo attribute) 当此输入方法的状态需要重置时调用此方法。 |
abstract void |
revokeSession(InputMethodSession session) 禁用并销毁先前使用 |
abstract void |
setSessionEnabled(InputMethodSession session, boolean enabled) 控制特定的输入法会话是否处于活动状态。 |
abstract void |
showSoftInput(int flags, ResultReceiver resultReceiver) 要求向用户显示输入法的任何软输入部分。 |
abstract void |
startInput(InputConnection inputConnection, EditorInfo info) 当应用程序开始接收文本时调用此方法,并且已准备好使用此输入方法来处理接收到的事件并将结果文本发送回应用程序。 |
abstract void |
unbindInput() 取消绑定应用程序环境,在先前由 |
String SERVICE_INTERFACE
这是实现输入方法的服务应该说它支持的接口名称 - 也就是说,这是它用于其意图过滤器的操作。 为了得到支持,该服务还必须要求BIND_INPUT_METHOD
权限,以便其他应用程序不能滥用它。
常量值:“android.view.InputMethod”
String SERVICE_META_DATA
InputMethod服务组件发布有关其自身的信息的名称。 此元数据必须引用包含<
标记的XML资源。input-method
>
常量值:“android.view.im”
int SHOW_EXPLICIT
标志为showSoftInput(int, ResultReceiver)
:此节目已被用户明确要求。 如果未设置,则系统已决定在UI中显示基于导航操作的输入方法可能是个好主意。
常数值:1(0x00000001)
int SHOW_FORCED
标志为showSoftInput(int, ResultReceiver)
:此节目已被用户强制执行。 如果设置,则输入方法应保持可见,直到用户在其UI中认真解散。
常量值:2(0x00000002)
void attachToken (IBinder token)
在创建输入方法之后调用第一件事物时,它会为它与系统服务的会话提供唯一标记。 需要确认自己的服务来验证其运作。 此标记不得传递给应用程序,因为它授予了不应赋予应用程序的特殊特权。
注意:为了保护自己免受恶意客户的侵害,您应该只接受给予您的第一个令牌。 之后的任何事情都可能来自客户。
Parameters | |
---|---|
token |
IBinder
|
void bindInput (InputBinding binding)
将新的应用程序环境绑定到输入法,以便稍后可以启动和停止输入处理。 通常这种方法在第一次在应用程序中启用此输入方法时被调用。
Parameters | |
---|---|
binding |
InputBinding : Information about the application window that is binding to the input method. |
也可以看看:
void changeInputMethodSubtype (InputMethodSubtype subtype)
通知输入法子类型在相同的输入法中正在更改。
Parameters | |
---|---|
subtype |
InputMethodSubtype : New subtype of the notified input method |
void createSession (InputMethod.SessionCallback callback)
创建一个新的可以交给客户端应用程序的InputMethodSession
,以便与输入法交互。 您可以稍后使用revokeSession(InputMethodSession)
销毁会话,以便它不能再被任何客户端使用。
Parameters | |
---|---|
callback |
InputMethod.SessionCallback : Interface that is called with the newly created session. |
void hideSoftInput (int flags, ResultReceiver resultReceiver)
要求用户隐藏输入法的任何软输入部分。
Parameters | |
---|---|
flags |
int : Provides additional information about the show request. Currently always 0. |
resultReceiver |
ResultReceiver : The client requesting the show may wish to be told the impact of their request, which should be supplied here. The result code should be InputMethodManager.RESULT_UNCHANGED_SHOWN , InputMethodManager.RESULT_UNCHANGED_HIDDEN , InputMethodManager.RESULT_SHOWN , or InputMethodManager.RESULT_HIDDEN . |
void restartInput (InputConnection inputConnection, EditorInfo attribute)
当此输入方法的状态需要重置时调用此方法。
通常,当输入焦点从一个文本框移动到另一个文本框时调用此方法。
Parameters | |
---|---|
inputConnection |
InputConnection : Optional specific input connection for communicating with the text box; if null, you should use the generic bound input connection. |
attribute |
EditorInfo : The attribute of the text box (typically, a EditText) that requests input. |
也可以看看:
void revokeSession (InputMethodSession session)
禁用并销毁先前使用createSession(android.view.inputmethod.InputMethod.SessionCallback)
创建的createSession(android.view.inputmethod.InputMethod.SessionCallback)
。 在此调用之后,给定的会话界面不再处于活动状态,并且调用它将失败。
Parameters | |
---|---|
session |
InputMethodSession : The InputMethodSession previously provided through SessionCallback.sessionCreated() that is to be revoked. |
void setSessionEnabled (InputMethodSession session, boolean enabled)
控制特定的输入法会话是否处于活动状态。
Parameters | |
---|---|
session |
InputMethodSession : The InputMethodSession previously provided through SessionCallback.sessionCreated() that is to be changed. |
enabled |
boolean
|
void showSoftInput (int flags, ResultReceiver resultReceiver)
要求向用户显示输入法的任何软输入部分。
Parameters | |
---|---|
flags |
int : Provides additional information about the show request. Currently may be 0 or have the bit SHOW_EXPLICIT set. |
resultReceiver |
ResultReceiver : The client requesting the show may wish to be told the impact of their request, which should be supplied here. The result code should be InputMethodManager.RESULT_UNCHANGED_SHOWN , InputMethodManager.RESULT_UNCHANGED_HIDDEN , InputMethodManager.RESULT_SHOWN , or InputMethodManager.RESULT_HIDDEN . |
void startInput (InputConnection inputConnection, EditorInfo info)
当应用程序开始接收文本时调用此方法,并且已准备好使用此输入方法来处理接收到的事件并将结果文本发送回应用程序。
Parameters | |
---|---|
inputConnection |
InputConnection : Optional specific input connection for communicating with the text box; if null, you should use the generic bound input connection. |
info |
EditorInfo : Information about the text box (typically, an EditText) that requests input. |
也可以看看:
void unbindInput ()
取消绑定应用程序环境,在先前由 bindInput(InputBinding)
设置的信息对于此输入方法不再有效时调用。
通常,当应用程序更改为非前景时,将调用此方法。