我的应用程序有时会显示一条通知,以简化切换到应用程序的内部输入法的过程。因此,我正在执行
((InputMethodManager) getSystemService(INPUT_METHOD_SERVICE)).showInputMethodPicker();
当用户单击通知时。
到目前为止,这已经有效,但并不总是在 Android 9 上有效:当我的应用程序位于前台时,它可以工作。如果不是,则什么也不会发生。在 logcat 上,我看到一条警告
“警告 889 InputMethodManagerService 忽略
uid 10210 的 showInputMethodPickerFromClient:
com.android.internal.view.IInputMethodClient$Stub$Proxy@edf46f0"。
有什么办法可以让这项工作再次发挥作用吗?
更新:我尝试创建一个活动,调用showInputMethodPicker();
in onResume()
。这有效(如果我使用postDelayed()
不幸的是,延迟相对较长),但我无法让活动自动关闭。所以这似乎不是一个好办法。
该问题可以通过设置来解决WRITE_SECURE_SETTINGS
您的应用程序的权限。
不幸的是,这需要发出一个 adb 命令:
adb shell pm grant com.name.app android.permission.WRITE_SECURE_SETTINGS
where com.name.app
是您的应用程序的包名称。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)