1. 程式人生 > >Android 5.1設定預設輸入法

Android 5.1設定預設輸入法

1,frameworks/base/core/res/res/values中的config.xml

<string-array name="config_disabledUntilUsedPreinstalledImes" translatable="false">
     <item>com.android.inputmethod.latin</item>
</string-array>
修改為:
<string-array name="config_disabledUntilUsedPreinstalledImes" translatable="false">
     <item>com.xxx.xxx</item>
</string-array>

注:com.xxx.xxx為新設定的輸入法包名

2,相應的輸入法放到aosp原始碼中
3,Settings中刪除拼寫檢查
packages/apps/Settings/res/xml/language_settings.xml
註釋以下程式碼

<!-- 取消拼寫檢查
    <PreferenceScreen
            android:key="spellcheckers_settings"
            android:title="@string/spellcheckers_settings_title"
            android:persistent="false"
            />
 -->

InputMethodAndLanguageSettings.java
// Spell Checker
/*
 * final Preference spellChecker = findPreference(KEY_SPELL_CHECKERS);
if (spellChecker != null) {
    // Note: KEY_SPELL_CHECKERS preference is marked as persistent="false" in XML.
    InputMethodAndSubtypeUtil.removeUnnecessaryNonPersistentPreference(spellChecker);
    final Intent intent = new Intent(Intent.ACTION_MAIN);
    intent.setClass(activity, SubSettings.class);
    intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT,
            SpellCheckersSettings.class.getName());
    intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_TITLE_RESID,
    R.string.spellcheckers_settings_title);
    spellChecker.setIntent(intent);
}*/

/*
 * final Preference spellChecker = findPreference(KEY_SPELL_CHECKERS);
 if (spellChecker != null) {
     final TextServicesManager tsm = (TextServicesManager) getSystemService(
            Context.TEXT_SERVICES_MANAGER_SERVICE);
     if (tsm.isSpellCheckerEnabled()) {
         final SpellCheckerInfo sci = tsm.getCurrentSpellChecker();
         spellChecker.setSummary(sci.loadLabel(getPackageManager()));
     } else {
         spellChecker.setSummary(R.string.switch_off_text);
     }
 }*/