android - 来自通知的 showInputMethodPicker 在 Android 9 中不起作用

标签 android android-9.0-pie inputmethodmanager

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

((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/

相关文章:

java - 在 Android 上查找缺口切口类型

android - Android Studio 中更新 Android SDK API 28 的问题

android - showSoftInputFromInputMethod 已弃用 Android P API 28

kotlin - 尽管有保障,但我的Kotlin代码中仍然存在NullPointerException

java - 安卓时间排行

android - 在 DefaultRedirectHandler.getLocationURI 回调中添加请求 header

java - Android RecyclerView的EditText在输入数据向下滚动后交换位置

Android Q : file. mkdirs() 返回 false

android - 我可以在自定义应用内键盘上使用 Android InputMethodManager 吗?

android - 计算过去 60 分钟的所有值