我的应用有时会显示一条通知,以简化切换到应用内部输入法的过程。因此,我正在执行
((InputMethodManager) getSystemService(INPUT_METHOD_SERVICE)).showInputMethodPicker();
当用户点击通知时。
到目前为止,此方法有效,但在 Android 9 上并不总是有效:当我的应用程序处于前台时,它有效。如果不是,则什么也不会发生。在 logcat 上,我看到一条警告
"Warning 889 InputMethodManagerService Ignoring showInputMethodPickerFromClient of uid 10210: com.android.internal.view.IInputMethodClient$Stub$Proxy@edf46f0".
有什么办法可以让它再次工作吗?
更新:我尝试创建一个 Activity ,在 onResume()
中调用 showInputMethodPicker();
。这有效(如果我使用 postDelayed()
时延迟相对较长,这很不幸),但我无法让 Activity 自动关闭。所以这似乎不是一个好办法。
最佳答案
可以通过为您的应用设置WRITE_SECURE_SETTINGS
权限来解决该问题。
不幸的是,这需要发出一个 adb 命令:
adb shell pm grant com.name.app android.permission.WRITE_SECURE_SETTINGS
其中 com.name.app
是您的应用的包名。
关于android - 来自通知的 showInputMethodPicker 在 Android 9 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52036241/