这InputMethodManager
是应用程序可以用来与系统键盘交互的服务。喜欢的编辑器EditText
也使用它来间接通知键盘更改(例如,updateSelection
)。
我可以得到这样的InputMethodManager
参考
InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
我的问题是这似乎只适用于系统键盘。我可以将InputMethodManager
用于自定义应用内键盘吗?如果它只是一个独立的应用程序,我不在乎,但我在一个库中包含了一个自定义键盘,它将在许多应用程序中使用。我需要一种标准的方式让编辑与键盘进行通信。
我是否必须编写自己的输入法管理器,或者有没有办法将标准InputMethodManager
与我的自定义应用内键盘一起使用?
更新
如果无法使用标准输入法管理器,这里有一些线索可以帮助我实现我自己的自定义输入法管理器。
InputMethodManager
(文档)(源代码)InputMethod
界面InputMethodSession
界面KeyboardView.OnKeyboardActionListener
接口(键盘实现它)InputMethodService
(键盘扩展此)(文档)(源代码)