在Android系统中,默认的是google拼音输入法,因客户需求,需要将默认的拼音输入法修改为Android键盘,具体步骤如下:
方法1:
在com.android.settings.LanguageSettings中的onCreateIMM()方法有如下代码:
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
mInputMethodProperties = imm.getInputMethodList();
mLastInputMethodId = Settings.Secure.getString(getContentResolver(), Settings.Secure.DEFAULT_INPUT_METHOD);
Android系统会从默认配置数据库中取出默认的输入法,因此我们只需要在数据库中添加默认的输入法即可:
步骤如下:
1、修改\frameworks\base\packages\SettingsProvider\res\values\defaults.xml文件
添加<string name="config_default_input_method" translatable="false">com.android.inputmethod.latin/.LatinIME</string>
2、将该默认配置添加至数据库:
\frameworks\base\packages\SettingsProvider\src\com\android\providers\settings\DatabaseHelper.java
private void loadSecureSettings(SQLiteDatabase db) {
。。。。
。。。。
loadStringSetting( stmt, Settings.Secure.DEFAULT_INPUT_METHOD,R.string.config_default_input_method );
}
方法2:
1、修改frameworks\base\core\res\res\values\config.xml文件
添加<string name="config_default_input_method" translatable="false">com.android.inputmethod.latin/.LatinIME</string>
2、修改frameworks\base\services\java\com\android\server\InputMethodManagerServic e.java文件中的buildInputMethodListLock ed()方法
if ( defaultIme == null ) { // 有人反映此处判断 有问题的 小心哟
String defaultIme = Settings.Secure.getString(mContext.getContentResolver(), Settings.Secure.DEFAULT_INPUT_METHOD);
final Resources res = mContext.getResources();
try {
String myIME = res.getString( com.android.internal.R.string.config_default_input_method );
if ( myIME != null && myIME.length() > 0 ) {
Settings.Secure.putString( mContext.getContentResolver(), Settings.Secure.DEFAULT_INPUT_METHOD, myIME );
}
} catch ( Exception e ) {
}
}
方法1:
在com.android.settings.LanguageSettings中的onCreateIMM()方法有如下代码:
方法2: