在rk3399 9.0中设置搜狗输入法为系统默认输入法
framework/base/core/java/com/android/internal/inputmethod/InputMethodUtils.java
@@ -849,6 +849,7 @@ public class InputMethodUtils {
private final Resources mRes;
private final ContentResolver mResolver;
private final HashMap<String, InputMethodInfo> mMethodMap;
+ private final ArrayList<InputMethodInfo> mMethodList;
/**
* On-memory data store to emulate when {@link #mCopyOnWrite} is {@code true}.
@@ -918,6 +919,7 @@ public class InputMethodUtils {
mRes = res;
mResolver = resolver;
mMethodMap = methodMap;
+ mMethodList = methodList;
switchCurrentUser(userId, copyOnWrite);
}
@@ -1043,6 +1045,22 @@ public class InputMethodUtils {
return enabledSubtypes;
}
+ // At the initial boot, the settings for input methods are not set,
+ // so we need to enable IME in that case.
+ public void enableAllIMEsIfThereIsNoEnabledIME() {
+ if (!TextUtils.isEmpty(getEnabledInputMethodsStr())) {
+ StringBuilder sb = new StringBuilder();
+ final int N = mMethodList.size();
+ for (int i = 0; i < N; i++) {
+ InputMethodInfo imi = mMethodList.get(i);
+ Slog.i(TAG, "Adding: " + imi.getId());
+ if (i > 0) sb.append(':');
+ sb.append(imi.getId());
+ }
+ putEnabledInputMethodsStr(sb.toString());
+ }
+ }
framework/base/packages/SettingsProvider/res/values/defaults.xml
+ <string name="def_enable_input_methods" translatable="false">com.sohu.inputmethod.sogou/.SogouIME</string>
+ <string name="def_input_method" translatable="false">com.sohu.inputmethod.sogou/.SogouIME</string>
framework/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
+ loadStringSetting(stmt, Settings.Secure.DEFAULT_INPUT_METHOD,
+ R.string.def_input_method);
+ loadStringSetting(stmt, Settings.Secure.ENABLED_INPUT_METHODS,
+ R.string.def_enable_input_methods );
framework/base/services/core/java/com/android/server/InputMethodManagerService.java
// TODO: The following code should find better place to live.
- if (!resetDefaultEnabledIme) {
+ /* if (!resetDefaultEnabledIme) {
boolean enabledImeFound = false;
boolean enabledNonAuxImeFound = false;
final List<InputMethodInfo> enabledImes = mSettings.getEnabledInputMethodListLocked();
@@ -3718,7 +3718,7 @@ public class InputMethodManagerService extends IInputMethodManager.Stub
}
reenableMinimumNonAuxSystemImes = true;
}
- }
+ }*/