4.4SDK默认输入法修改理解:默认语言和默认输入法以及键盘是两码事。当需要默认第三方输入法时需要预置第三方输入法apk,系统设置里的输入法菜单能看到好几个输入法,每一个输入法对应一个输入法apk,系统自带的输入法源码在packages\inputmethods\目录,像谷歌输入法和谷歌拼音输入法的源码都是在这里,如果不要可以屏蔽编译即可;一般除了4.4SDK,其他5.0或者5.0以上的SDK都不能通过查询数据库来获取输入法的id,只有4.4SDK可以,如果有需求,可以将第三方输入法安装到4.4系统的机器上,然后配置成需求的那样通过adb命令去查询输入法id,命令步骤是:
(1)adb shell ->(2)cd /data/data/com.android.providers.settings/databases ->(3)sqlite3 settings.db;【带分号】 -> (4)select * from secure where name = "enabled_input_methods";【带分号,到这步就能获取已经勾选好的几个的输入法的id包括子键盘];(5)select * from secure where name = "default_input_method";【带分号,这条命令就是获取当前设置好的默认输入法id】。DatabaseHelper.java类中的loadStringSetting(stmt, Settings.Secure.DEFAULT_INPUT_METHOD, R.string.default_input_method);代码是配置默认输入法,而loadStringSetting(stmt, Settings.Secure.ENABLED_INPUT_METHODS, R.string.config_default_input_method);代码是勾选住想勾选的输入法。其实一个输入法apk有多个子输入键盘,命令:select * from secure where name = "selected_input_method_subtype";【带分号,就能获取当前默认输入法的子输入键盘的数字号,这些数字号在packages/inputmethods/LatinIME/java/res/xml/method.xml文件中是有定义的】