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

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

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

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

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

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

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

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