我正在用InputMethodService
实现一个自定义键盘。当选择的键盘是我的自定义键盘时,从聊天头(类似于facebook messenger中的浮动小部件(服务调用showInputMethodPicker
是可行的,但如果当前选择的键盘为其他键盘,例如Gboard,则输入法选择器UI不会显示,在安卓工作室的Run控制台上没有错误消息。所说的选定键盘,我指的是设置中的默认键盘。
// inside main activity, start 'chat head' service when a button in app is clicked
startService(Intent(this@MainActivity, FloatingViewService::class.java))
// inside 'chat head' service, show picker UI when a button in expanded 'chat head' menu is clicked
val imm = getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager
imm.showInputMethodPicker()
如何使showInputMethodPicker
工作,即使我的自定义键盘没有选择或是不可能的?不熟悉Android,所以欢迎替代方法(如果上面的方法从一开始就是错误的(
关注这篇关于创建"聊天头"的博客文章和这篇关于如何使用showInputMethodPicker
的stackoverflow文章
相关帖子,问题提到了使用postDelay
,所以我目前的解决方法是:当在聊天头服务中点击按钮时,创建一个意图,使用putExtra
用布尔数据启动活动,调用活动onCreate
,如果布尔值为真,则在一段延迟后调用showInputMethodPicker
(对我来说是500ms(,将布尔值设置为假
从服务详细信息启动活动
使用postDelayed
细节的延迟