Most visited

Recently visited

Added in API level 3

InputMethod

public interface InputMethod

android.view.inputmethod.InputMethod
Known Indirect Subclasses


InputMethod接口表示一种输入方法,它可以在处理各种输入事件时生成关键事件和文本,如数字,电子邮件地址,CJK字符,其他语言字符等,并将文本发送回请求文本的应用程序输入。 有关该体系结构的更多一般信息,请参见InputMethodManager

应用程序通常不会自己使用此接口,而是依赖于由 TextViewEditText提供的标准交互。

实施输入法的人通常应该从InputMethodService或其中一个子类派生。 在实现输入方法时,包含它的服务组件还必须提供一个SERVICE_META_DATA元数据字段,引用提供输入方法详细信息的XML资源。 所有输入法也必须要求客户端持有BIND_INPUT_METHOD才能与服务交互; 如果这不是必需的,系统将不会使用该输入法,因为它不能相信它没有受到损害。

InputMethod接口实际上分为两部分:这里的接口是输入方法的顶层接口,提供对它的所有访问,只有系统可以访问它(由于BIND_INPUT_METHOD权限要求)。 此外它的方法createSession(android.view.inputmethod.InputMethod.SessionCallback)可以调用instantate二次InputMethodSession接口这就是客户端使用与输入法进行通信。

Summary

Nested classes

interface InputMethod.SessionCallback

 

Constants

String SERVICE_INTERFACE

这是实现输入方法的服务应该说它支持的接口名称 - 也就是说,这是它用于其意图过滤器的操作。

String SERVICE_META_DATA

InputMethod服务组件发布有关其自身的信息的名称。

int SHOW_EXPLICIT

标志为 showSoftInput(int, ResultReceiver) :此节目已被用户明确要求。

int SHOW_FORCED

标志为 showSoftInput(int, ResultReceiver) :此节目已被用户强制执行。

Public methods

abstract void attachToken(IBinder token)

在创建输入方法之后调用第一件事物时,它会为它与系统服务的会话提供唯一标记。

abstract void bindInput(InputBinding binding)

将新的应用程序环境绑定到输入法,以便稍后可以启动和停止输入处理。

abstract void changeInputMethodSubtype(InputMethodSubtype subtype)

通知输入法子类型在相同的输入法中正在更改。

abstract void createSession(InputMethod.SessionCallback callback)

创建一个新的可以交给客户端应用程序的 InputMethodSession ,以便与输入法交互。

abstract void hideSoftInput(int flags, ResultReceiver resultReceiver)

要求用户隐藏输入法的任何软输入部分。

abstract void restartInput(InputConnection inputConnection, EditorInfo attribute)

当此输入方法的状态需要重置时调用此方法。

abstract void revokeSession(InputMethodSession session)

禁用并销毁先前使用 createSession(android.view.inputmethod.InputMethod.SessionCallback)创建的 createSession(android.view.inputmethod.InputMethod.SessionCallback)

abstract void setSessionEnabled(InputMethodSession session, boolean enabled)

控制特定的输入法会话是否处于活动状态。

abstract void showSoftInput(int flags, ResultReceiver resultReceiver)

要求向用户显示输入法的任何软输入部分。

abstract void startInput(InputConnection inputConnection, EditorInfo info)

当应用程序开始接收文本时调用此方法,并且已准备好使用此输入方法来处理接收到的事件并将结果文本发送回应用程序。

abstract void unbindInput()

取消绑定应用程序环境,在先前由 bindInput(InputBinding)设置的信息对于此输入方法不再有效时调用。

Constants

SERVICE_INTERFACE

Added in API level 3
String SERVICE_INTERFACE

这是实现输入方法的服务应该说它支持的接口名称 - 也就是说,这是它用于其意图过滤器的操作。 为了得到支持,该服务还必须要求BIND_INPUT_METHOD权限,以便其他应用程序不能滥用它。

常量值:“android.view.InputMethod”

SERVICE_META_DATA

Added in API level 3
String SERVICE_META_DATA

InputMethod服务组件发布有关其自身的信息的名称。 此元数据必须引用包含<input-method>标记的XML资源。

常量值:“android.view.im”

SHOW_EXPLICIT

Added in API level 3
int SHOW_EXPLICIT

标志为showSoftInput(int, ResultReceiver) :此节目已被用户明确要求。 如果未设置,则系统已决定在UI中显示基于导航操作的输入方法可能是个好主意。

常数值:1(0x00000001)

SHOW_FORCED

Added in API level 3
int SHOW_FORCED

标志为showSoftInput(int, ResultReceiver) :此节目已被用户强制执行。 如果设置,则输入方法应保持可见,直到用户在其UI中认真解散。

常量值:2(0x00000002)

Public methods

attachToken

Added in API level 3
void attachToken (IBinder token)

在创建输入方法之后调用第一件事物时,它会为它与系统服务的会话提供唯一标记。 需要确认自己的服务来验证其运作。 此标记不得传递给应用程序,因为它授予了不应赋予应用程序的特殊特权。

注意:为了保护自己免受恶意客户的侵害,您应该只接受给予您的第一个令牌。 之后的任何事情都可能来自客户。

Parameters
token IBinder

bindInput

Added in API level 3
void bindInput (InputBinding binding)

将新的应用程序环境绑定到输入法,以便稍后可以启动和停止输入处理。 通常这种方法在第一次在应用程序中启用此输入方法时被调用。

Parameters
binding InputBinding: Information about the application window that is binding to the input method.

也可以看看:

changeInputMethodSubtype

Added in API level 11
void changeInputMethodSubtype (InputMethodSubtype subtype)

通知输入法子类型在相同的输入法中正在更改。

Parameters
subtype InputMethodSubtype: New subtype of the notified input method

createSession

Added in API level 3
void createSession (InputMethod.SessionCallback callback)

创建一个新的可以交给客户端应用程序的InputMethodSession ,以便与输入法交互。 您可以稍后使用revokeSession(InputMethodSession)销毁会话,以便它不能再被任何客户端使用。

Parameters
callback InputMethod.SessionCallback: Interface that is called with the newly created session.

hideSoftInput

Added in API level 3
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.

restartInput

Added in API level 3
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.

也可以看看:

revokeSession

Added in API level 3
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.

setSessionEnabled

Added in API level 3
void setSessionEnabled (InputMethodSession session, 
                boolean enabled)

控制特定的输入法会话是否处于活动状态。

Parameters
session InputMethodSession: The InputMethodSession previously provided through SessionCallback.sessionCreated() that is to be changed.
enabled boolean

showSoftInput

Added in API level 3
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.

startInput

Added in API level 3
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.

也可以看看:

unbindInput

Added in API level 3
void unbindInput ()

取消绑定应用程序环境,在先前由 bindInput(InputBinding)设置的信息对于此输入方法不再有效时调用。

通常,当应用程序更改为非前景时,将调用此方法。

Hooray!