一、删除原生输入法
- 1 . 删除build/target/product/core.mk 文件下的原生输入法:
PRODUCT_PACKAGES += \
BasicDreams \
BlockedNumberProvider \
Calendar \
CalendarProvider \
...
- 2 . 删除device/qcom/common/base.mk 文件下的原生输入法:
PRODUCT_PACKAGES := \
AccountAndSyncSettings \
DeskClock \
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
...
百度: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