4

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

((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()相对较长的延迟,这是不幸的),但我无法让活动自动关闭。所以这似乎不是一个好方法。

4

1 回答 1

1

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

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

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

com.name.app您的应用程序的包名称在哪里。

于 2019-05-10T11:17:54.987 回答