showInputMethodPicker из уведомления не работает в Android 9 - PullRequest
0 голосов
/ 27 августа 2018

Мое приложение иногда показывает уведомление, чтобы упростить переключение на внутренний метод ввода приложения.Поэтому я выполняю

((InputMethodManager) getSystemService(INPUT_METHOD_SERVICE)).showInputMethodPicker();

, когда пользователь щелкает уведомление.

Пока это работает, но не всегда работает на Android 9: когда мое приложение находится на переднем плане, оноработает.Когда это не так, ничего не происходит.В logcat я вижу предупреждение

"Предупреждение 889 InputMethodManagerService Игнорирование showInputMethodPickerFromClient из идентификатора пользователя 10210: com.android.internal.view.IInputMethodClient$Stub$Proxy@edf46f0" * * 100

Есть ли способ заставить эту работу снова?

Обновление: я пытался создать действие, вызывая showInputMethodPicker(); в onResume().Это работает (если я использую postDelayed() с относительно большой задержкой, что является неудачным), но я не могу заставить действие автоматически закрыться.Так что это не очень хороший способ.

1 Ответ

0 голосов
/ 10 мая 2019

Проблема может быть решена путем установки разрешения WRITE_SECURE_SETTINGS для вашего приложения.

К сожалению, для этого требуется выполнить одну команду adb:

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

где com.name.app - имя пакета вашего приложения.

...