如何修改Android系统默认输入法

悟途网 2013年12月06日 10:38 阅读()
字号 (A- A+)

一、适用于ICS(Android V4.0)之前的版本:
1. 安装需要用的默认输入法(.apk)到system/app
2. 修改文件 frameworks/base/packages/SettingsProvider/res/values/defaults.xml
<string name="default_input_method" translatable="false">默认输入法 ID</string>
红色标记表示输入法 ID,比如 PinyinIME 为:com.android.inputmethod.pinyin/.PinyinIME

二、适用于 ICS、JB、JB2及之后的 版本:
1. 需要提前将用到的默认输入法(.apk)内置到系统中(请参考如何将APK预置进系统)
2. 修改文件 mediatek/config/${Project}/ProjectConfig.mk
将宏 DEFAULT_INPUT_METHOD 的值设置为所需的输入法;
比如 PinyinIME,则设为:DEFAULT_INPUT_METHOD = com.android.inputmethod.pinyin.PinyinIME
这个值是输入法源码中,包含InputMethodService子类的那个包名.实现InputMethodService的子类的类名。这里比log中打印的完整类名少一个"/",请注意

补充说明:
上面的修改方法只适用于默认输入法为com.android.inputmethod.pinyin/.PinyinIME这种格式的输入法(即反斜杠后面就是类名的情况),
对于com.google.andr
oid.inputmethod.latin/com.android.inputmethod.latin.LatinIME (即反斜杠后面是完整类名的情况),
这种情况是不支持修改mediatek/config/${Project}/ProjectConfig.mk
里面DEFAULT_INPUT_METHOD的方法来设置默认输入法的。
以com.google.andr
oid.inputmethod.latin/com.android.inputmethod.latin.LatinIME 为例
请改用下面的方法修改,在SettingsProvider 的DatabaseHelper.java中

Log.i(TAG, "defaultIME : " + defaultIME);
if (defaultIME != null) {
StringBuffer strBuffer = new StringBuffer(defaultIME);
int lastDotPos = defaultIME.lastIndexOf(".");
String strInsert = "/";
strBuffer.insert(lastDotPos, strInsert);
loadSetting(stmt, Settings.Secure.DEFAULT_INPUT_METHOD,
strBuffer.toString());
} else {
Log.i(TAG, "default IME from IMEFeatureOption is null!!");
}
请将默认的初始化部分code删除,即将 下面的code都删除掉。
Log.i(TAG, "defaultIME : " + defaultIME);
if (defaultIME != null) {
StringBuffer strBuffer = new StringBuffer(defaultIME);
int lastDotPos = defaultIME.lastIndexOf(".");
String strInsert = "/";
strBuffer.insert(lastDotPos, strInsert);
loadSetting(stmt, Settings.Secure.DEFAULT_INPUT_METHOD,
strBuffer.toString());
} else {
Log.i(TAG, "default IME from IMEFeatureOption is null!!");
}
然后在删除的后面添加
loadSetting(stmt, Settings.Secure.ENABLED_INPUT_METHODS,
"com.google.andr
oid.inputmethod.latin/com.android.inputmethod.latin.LatinIME"); //这里修该默认enable的输入法
loadSetting(stmt, Settings.Secure.DEFAULT_INPUT_METHOD,
"com.google.andr
oid.inputmethod.latin/com.android.inputmethod.latin.LatinIME");//这里修改默认选中的输入法

热门文章
随机推荐
安卓Android换机苹果iPhone必看教程

安卓Android换机苹果iPhone必看

苹果宣布了iPhone以旧换新计划,安卓、黑莓、WP手机甚...

解决Android设备无线连不上及常见无线连接问题

解决Android设备无线连不上及

Android设备越来越多,作为无线终端,常常会遇到各种无...

使用Clojure构建原生Android应用

使用Clojure构建原生Android应

在Android平台上使用Clojure进行开发,在过去几年中取得...

教你如何安卓4.4开启art模式的方法

教你如何安卓4.4开启art模式

ART模式是Android系统新增的一个新的底层运行模式,目前...

分享怎么恢复android安卓手机数据

分享怎么恢复android安卓手机

android安卓智能手机有时候不小心删除一些东西后才发现...

Android安卓手机usb调试开关开启方法

Android安卓手机usb调试开关开

手机通过数据线连接电脑后找不到手机磁盘或者软件无...

Android安卓手机不能安装软件原因与解决办法

Android安卓手机不能安装软件

最近有网友问到这样一个问题:安卓手机不能安装软件...

安卓Android手机如何进行定位与远程控制的方法

安卓Android手机如何进行定位

一旦你的Android手机丢失,千万不要慌张。目前的Andro...