此方法的优点是一次肯定搞定,所以写一下 android版本4.03
这个方法是不用区分版本的,基本上都有效
1.手机开机,安装上你要默认配置的输入法,并且将其设置为默认输入法
2.链接adb,导出数据库(4.03的user版本的话,命令行adb root 就有root权限,以后的版本你需要使用eng版本,如4.22需要 adb remount 一下)
导出文件/data/data/com.android.providers.settings/database/settings.db
3.使用sql工具打开settings.db ,我用的是Navicat for SQLite,查看表secure,查看default_input_method的值
4.打开文件 /frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
到函数 private void loadSecureSettings(SQLiteDatabase db)
添加代码
private void loadSecureSettings(SQLiteDatabase db) {
SQLiteStatement stmt = null;
try {
stmt = db.compileStatement("INSERT OR IGNORE INTO secure(name,value)"
+ " VALUES(?,?);");
loadBooleanSetting(stmt, Settings.Secure.BLUETOOTH_ON,
R.bool.def_bluetooth_on);
loadStringSetting(stmt, Settings.Secure.DEFAULT_INPUT_METHOD,
R.string.default_input_method);
// Data roaming default, based on build
loadSetting(stmt, Settings.Secure.DATA_ROAMING,
"true".equalsIgnoreCase(
SystemProperties.get("ro.com.android.dataroaming",
"false")) ? 1 : 0);
。。。。。。。。
5.配置xml文件 \frameworks\base\packages\SettingsProvider\res\values/defaults.xml
添加默认输入法
<string name="default_input_method" translatable="false">
com.thihaayekyaw.frozenkeyboard/com.example.android.softkeyboard.SoftKeyboard</string>
6.大功告成