7.0系统自带的输入法中语言默认为系统语言,客户要求将输入法语言改为其他
在ProjectConfig.mk中:
DEFAULT_LATIN_IME_LANGUAGES = en-US fr ru
//在7.0上这样修改无效
(1)首先frameworks\base\packages\SettingsProvider\res\values\defaults.xml 增加下面语句
<string name="def_input_methods">com.android.inputmethod.latin/.LatinIME;
529847764;-921088104
</string>
意思是增加英文和泰文输入法,android/packages/inputmethods/LatinIME/java/res/xml/method.xml中有定义的
-921088104;529847764分别代表en_US和th
ps:可以在settings中设置输入法语言后,然后在/data/system/users/0/settings_secure.xml查看
(2)然后在frameworks\base\packages\SettingsProvider\src\com\android\providers\settings\DatabaseHelper.java
增加如下代码
loadStringSetting(stmt, Settings.Secure.ENABLED_INPUT_METHODS, R.string.def_input_methods);
7.0的SettingProvider数据库不在data/data/com.android.providers.settings中
而是在这三个文件中
/data/system/users/0/settings_secure.xml
/data/system/users/0/settings_system.xml
/data/system/users/0/settings_global.xml