Программно программировать профиль клавиатуры

Есть ли способ, с помощью которого мы можем программно переключать установленные клавиатуры (не переходя в раздел настроек вручную)?

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

(В основном мы хотим сократить шаг, чтобы перенести его на страницу настроек)

Эта часть кода будет соответствовать вашим требованиям:

InputMethodManager imeManager = (InputMethodManager) getApplicationContext().getSystemService(INPUT_METHOD_SERVICE); imeManager.showInputMethodPicker(); 

Как Commonsware отмечает в своем ответе, нет никакого способа сделать это за спиной пользователя.

Если у вас есть внедренное устройство, вы можете использовать утилиту /system/bin/ime .

Список всех установленных методов ввода: # ime list -a

Установите клавиатуру Google по умолчанию:
# ime set com.google.android.inputmethod.latin/com.android.inputmethod.latin.LatinIME

На стороне Java используйте Runtime.getRuntime (). Exec (…) .

Если ваше приложение имеет системные привилегии и имеет разрешение

 <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" /> 

Вы можете программно включить клавиатуру и установить ее в качестве текущей клавиатуры, сделав ее клавиатурой по умолчанию БЕЗ ПОЛЬЗОВАТЕЛЬСКИХ ЗНАНИЙ ИЛИ ВМЕШАТЕЛЬСТВ!

 //get the old default keyboard in case you want to use it later, or keep it enabled String oldDefaultKeyboard = Settings.Secure.getString(resolver, Setting.Secure.DEFAULT_INPUT_METHOD); //enable your keyboard Settings.Secure.putString(resolver, Settings.Secure.ENABLED_INPUT_METHODS, "com.my.keyboard/.full.path"); //set your keyboard as the new default keyboard Settings.Secure.putString(resolver, Settings.Secure.DEFAULT_INPUT_METHOD, "com.my.keyboard/.full.path"); 

Вы можете включить несколько клавиатур (например, клавиатуру по умолчанию и свой собственный), предоставив список клавиатур для ENABLED_INPUT_METHODS , разделенных ENABLED_INPUT_METHODS «:». См. Документы

Вы можете проверить полный комплект вашей клавиатуры и идентификатор пути, вызвав ime list -a через adb shell

Есть ли способ, с помощью которого мы можем программно переключать установленные клавиатуры (не переходя в раздел настроек)?

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

Intereting Posts
Как наложить GLSurfaceView на MapView в Android? Android Intent with Cordova – новый экземпляр приложения запускается для каждой акции. Должна быть только одна Может ли PostMessage API использоваться для связи с Android WebView? Поддерживается ли JetCreator (и / или JETPlayer устарел?) Ошибка выполнения команды 'ant' в Mac OS X 10.9 Mavericks при создании Android с помощью PhoneGap / Cordova @IntDef Android поддерживает аннотацию с десериализацией Джексона Открытый ключ Google Open Repo GPG не найден Получить высоту клавиатуры в Lollipop Пользовательский стиль кнопки расширителя ExpandableListView Обновление PhoneGap от Cordova до 5.1.1 с 2.2.0 Android: Google Фото, как вид сетки с функцией масштабирования Разрешено ли использование нескольких объявлений AdMob в RecyclerView? Альтернативная рекламная сеть? Что эквивалентно listview.getCount в случае Recyclerview Близкая активность от другого действия посредством намерения Phonegap.js отключает приложение для Android