在Android系統(tǒng)中,默認的是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系統(tǒng)會從默認配置數(shù)據(jù)庫中取出默認的輸入法,因此我們只需要在數(shù)據(jù)庫中添加默認的輸入法即可: 步驟如下: 1、修改\frameworks\base\packages\SettingsProvider\res\values\defaults.xml文件 添加<string name="config_default_input_method" translatable="false">com.android.inputmethod.latin/.LatinIME</string> 2、將該默認配置添加至數(shù)據(jù)庫: \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 ) {
} }
|