在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\InputMethodManagerService.java文件中的buildInputMethodListLocked()方法 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 ) {
} }
|