我正在编写IME(软键盘),并且从一个应用程序(Android Mail)中得到了一些奇怪的行为。它将未知输入类传递给我的IME(通过InputMethodService.onStartInputView(EditorInfo)):

EditorInfo.inputType & EditorInfo.TYPE_MASK_CLASS = 0xf


问题是0xf不是EditorInfo中定义的输入类之一!根据文档,唯一合法的值是0x1、0x2、0x3和0x4。执行此操作的唯一文本字段是Android Mail应用程序中的正文字段。这是Android Mail中的错误还是我遗漏了一些东西?

提前致谢...

最佳答案

当我开发IME时,这种事情发生在我身上。

就我而言,HTC Hero发送的输入类型与默认SMS应用程序中的其他设备不同。
此刻,我们意识到HTC Hero带来了自己的自定义IME,因此应该实现特定的设备逻辑。

我的建议如下:


如果要支持发送此“特殊”输入类型的设备/应用程序,则只需以不同的方式进行处理即可。
始终检查默认android IME如何处理它。
文档说明:如果您不理解该类,请假定TYPE_CLASS_TEXT没有变体或标志。

10-07 12:19