Вы можете изменять клавиатуру без уведомления пользователя и только в том случае, если ваше приложение работает как системное приложение по соображениям безопасности.
Сначала вы должны указать разрешение Android в AndroidManifest.xml вашего приложения
"android.permission.WRITE_SECURE_SETTINGS"
Затем вам нужно определить идентификатор вашей клавиатуры.
-> Чтобы узнать идентификатор, вам нужно сохранить свою клавиатуру по умолчанию из меню настройки вручную, а затем напечатать этот документ где-нибудь,
System.out.println(Settings.Secure.getString(getContentResolver(),Settings.Secure.DEFAULT_INPUT_METHOD));
После того, как вы напечатаете идентификатор, и вы знаете свой идентификатор клавиатуры, вы можете сделать это согласно ниже (я поменял мою клавиатуру по умолчанию на японский)
InputMethodManager imeManager = (InputMethodManager) getApplicationContext().getSystemService(INPUT_METHOD_SERVICE);
//imeManager.showInputMethodPicker(); //This is to see available keyboards.
imeManager.setInputMethod(null,"jp.co.omronsoft.openwnn/.OpenWnnJAJP");
Наслаждайтесь !!