在A(yíng)ndroid系統中,默認的是google拼音輸入法,因客戶(hù)需求,需要將默認的拼音輸入法修改為Android鍵盤(pán),具體步驟如下:
方法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系統會(huì )從默認配置數據庫中取出默認的輸入法,因此我們只需要在數據庫中添加默認的輸入法即可:
步驟如下:
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 ) { // 有人反映此處判斷 有問(wèn)題的 小心喲
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 ) {
}
}
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請
點(diǎn)擊舉報。