[如何实现出厂时,输入法默认是勾选的]
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
因为默认enable的输入法都被保存在Settings.Secure.ENABLED_INPUT_METHODS
所以只用修改他的默认值即可.
以默认勾选latin和sogou为例,
修改DatabaseHelper.java (/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java)
1.先定义 private static final String defaultEnableInputMethods = "com.android.inputmethod.latin/.LatinIME:com.sohu.inputmethod.sogou/.SogouIME";
2.在 private void loadSecureSettings(SQLiteDatabase db) {......}中添加如下内容:
loadSetting(stmt,Settings.Secure.ENABLED_INPUT_METHODS,defaultEnableInputMethods);
如果要添加多个输入法,则defaultEnableInputMethods的定义为多个输入法的id,输入法之间用:隔开.
[如何修改默认输入法]
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
一、适用于Android V4.0之前的版本:
1. 安装需要用的默认输入法(.apk)到system/app
2. 修改文件 frameworks/base/packages/SettingsProvider/res/values/defaults.xml
<string name="default_input_method" translatable="false">默认输入法 ID</string>
输入法 ID,如 PinyinIME 为:com.android.inputmethod.pinyin/.PinyinIME
二、适用于Android V4.0及之后的 版本:
1. 需要提前将用到的默认输入法(.apk)内置到系统中
2. 修改文件 DatabaseHelper.java (/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java)
请将默认的初始化部分code删除,即将下面的code都删除掉。
String defaultIME = IMEFeatureOption.DEFAULT_INPUT_METHOD;
Log.i(TAG, "defaultIME : " + defaultIME);
if (defaultIME != null) {
StringBuffer strBuffer = new StringBuffer(defaultIME);
int lastDotPos = defaultIME.lastIndexOf(".");
String strInsert = "/";
strBuffer.insert(lastDotPos, strInsert);
loadSetting(stmt, Settings.Secure.DEFAULT_INPUT_METHOD,
strBuffer.toString());
} else {
Log.i(TAG, "default IME from IMEFeatureOption is null!!");
}
然后在删除的后面添加
//这里修该默认enable的输入法
//这里修改默认选中的输入法
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
因为默认enable的输入法都被保存在Settings.Secure.ENABLED_INPUT_METHODS
所以只用修改他的默认值即可.
以默认勾选latin和sogou为例,
修改DatabaseHelper.java (/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java)
1.先定义 private static final String defaultEnableInputMethods = "com.android.inputmethod.latin/.LatinIME:com.sohu.inputmethod.sogou/.SogouIME";
2.在 private void loadSecureSettings(SQLiteDatabase db) {......}中添加如下内容:
loadSetting(stmt,Settings.Secure.ENABLED_INPUT_METHODS,defaultEnableInputMethods);
如果要添加多个输入法,则defaultEnableInputMethods的定义为多个输入法的id,输入法之间用:隔开.
[如何修改默认输入法]
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
一、适用于Android V4.0之前的版本:
1. 安装需要用的默认输入法(.apk)到system/app
2. 修改文件 frameworks/base/packages/SettingsProvider/res/values/defaults.xml
<string name="default_input_method" translatable="false">默认输入法 ID</string>
输入法 ID,如 PinyinIME 为:com.android.inputmethod.pinyin/.PinyinIME
二、适用于Android V4.0及之后的 版本:
1. 需要提前将用到的默认输入法(.apk)内置到系统中
2. 修改文件 DatabaseHelper.java (/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java)
请将默认的初始化部分code删除,即将下面的code都删除掉。
String defaultIME = IMEFeatureOption.DEFAULT_INPUT_METHOD;
Log.i(TAG, "defaultIME : " + defaultIME);
if (defaultIME != null) {
StringBuffer strBuffer = new StringBuffer(defaultIME);
int lastDotPos = defaultIME.lastIndexOf(".");
String strInsert = "/";
strBuffer.insert(lastDotPos, strInsert);
loadSetting(stmt, Settings.Secure.DEFAULT_INPUT_METHOD,
strBuffer.toString());
} else {
Log.i(TAG, "default IME from IMEFeatureOption is null!!");
}
然后在删除的后面添加
//这里修该默认enable的输入法
loadSetting(stmt,Settings.Secure.ENABLED_INPUT_METHODS,
"com.google.android.inputmethod.latin/com.android.inputmethod.latin.LatinIME");
//这里修改默认选中的输入法
loadSetting(stmt, Settings.Secure.DEFAULT_INPUT_METHOD,
"com.google.android.inputmethod.latin/com.android.inputmethod.latin.LatinIME");