我的应用有时会显示一条通知,以简化切换到应用的内部输入法的过程。因此,我正在执行
((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()
,这很不幸),但是我无法使活动自动关闭。因此,这似乎不是一个好方法。
答案 0 :(得分:1)
可以通过为您的应用设置WRITE_SECURE_SETTINGS
权限来解决该问题。
不幸的是,这需要发出一个adb命令:
adb shell pm grant com.name.app android.permission.WRITE_SECURE_SETTINGS
其中com.name.app
是应用程序的程序包名称。