Android 7.0 刪除原生輸入法(AOSP)&更換系統預設輸入法
阿新 • • 發佈:2019-01-01
一、刪除原生輸入法
- 1 . 刪除build/target/product/core.mk 檔案下的原生輸入法:
PRODUCT_PACKAGES += \
BasicDreams \
BlockedNumberProvider \
#LatinIME \ 刪除
Calendar \
CalendarProvider \
...
- 2 . 刪除device/qcom/common/base.mk 檔案下的原生輸入法:
PRODUCT_PACKAGES := \
AccountAndSyncSettings \
DeskClock \
#LatinIME \ 刪除
AlarmProvider \
Bluetooth \
Calculator \
...
二、新增系統預設輸入法
- 1 . 將第三方輸入法APK編譯到system/app 目錄下:
- 2 . 在 frameworks/base/core/res/res/values/config.xml 新增一個需要的輸入法屬性(例項為訊飛):
<string name="config_default_input_method" translatable="false">
com.iflytek.inputmethod/.FlyIME</string>
- 3 . 在frameworks/base/services/java/com/android/server/InputMethodManagerService.java 裡新增:
void buildInputMethodListLocked(boolean resetDefaultEnabledIme) {
...
//add start
String defaultIme = Settings.Secure.getString(mContext.getContentResolver(),
Settings.Secure.DEFAULT_INPUT_METHOD);
if (defaultIme == null) {
final Resources res = mContext.getResources();
try {
//frameworks\base\core\res\res\values\config.xml
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) {
}
}
// add end
...
- 4 .常見輸入法的包名和類名
百度:com.baidu.input/.ImeService
訊飛:com.iflytek.inputmethod/.FlyIME
騰訊:com.tencent.qqpinyin/.QQPYInputMethodService
谷歌:com.google.android.inputmethod.pinyin/.PinyinIME
搜狗:com.sohu.inputmethod.sogou/.SogouIME
觸寶:com.cootek.smartinput5/.TouchPalIME