通过编程切换键盘configuration文件

有没有什么办法,我们可以切换安装键盘编程(不需要手动进入设置部分)?

我的要求是,用户在手机上安装的所有键盘,并得到一个select器对话框切换到一个愿望?

(基本上我们要减less把他转到设置页面的步骤)

这段代码将满足您的要求:

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

正如Commonsware在他的回答中所指出的,在用户的背后没有办法做到这一点。

如果您的应用程序具有系统权限并且具有权限

 <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提供键盘列表来启用多个键盘(例如默认键盘和您自己的键盘),用':'分隔。 看文档

您可以通过调用ime list -a通过adb shellvalidation您的键盘的完整软件包和pathID

如果您拥有根设备,则可以使用/system/bin/ime实用程序。

列出所有已安装的input法: # ime list -a

将谷歌键盘设置为默认值:
# ime set com.google.android.inputmethod.latin/com.android.inputmethod.latin.LatinIME

在Java方面使用Runtime.getRuntime()。exec(…) 。

有什么办法,我们可以切换安装键盘编程(不去设置部分)?

幸运的是,没有,出于安全原因。 如果一个应用程序可以指定使用什么input法编辑器,恶意软件会将input法编辑器更改为其键盘logging器。