通知中的showInputMethodPicker在Android 9中不起作用

时间:2018-08-27 09:24:55

标签: android android-9.0-pie inputmethodmanager

我的应用有时会显示一条通知,以简化切换到应用的内部输入法的过程。因此,我正在执行

((InputMethodManager) getSystemService(INPUT_METHOD_SERVICE)).showInputMethodPicker();

当用户单击通知时。

到目前为止,此方法一直有效,但并不总是在Android 9上有效:当我的应用程序处于前台时,它可以工作。如果不是,则什么也不会发生。在logcat上,我看到警告

  

“警告889 InputMethodManagerService忽略   uid 10210的showInputMethodPickerFromClient:   com.android.internal.view.IInputMethodClient$Stub$Proxy@edf46f0“。

有什么办法可以使它再次工作?

更新:我试图创建一个活动,在showInputMethodPicker();中调用onResume()。这行得通(如果我以相对较长的延迟使用postDelayed(),这很不幸),但是我无法使活动自动关闭。因此,这似乎不是一个好方法。

1 个答案:

答案 0 :(得分:1)

可以通过为您的应用设置WRITE_SECURE_SETTINGS权限来解决该问题。

不幸的是,这需要发出一个adb命令:

adb shell pm grant com.name.app android.permission.WRITE_SECURE_SETTINGS

其中com.name.app是应用程序的程序包名称。