[Description]
如何修改默认输入法?
[Solution]
一、适用于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、KK的 版本:
1. 需要提前将用到的默认输入法(.apk)内置到系统中(请参考如何将APK预置进系统)
2. 修改文件 mediatek/config/${Project}/ProjectConfig.mk
将宏 DEFAULT_INPUT_METHOD 的值设置为所需的输入法;
比如 PinyinIME,则设为:DEFAULT_INPUT_METHOD = com.android.inputmethod.pinyin.PinyinIME
这个值是输入法源码中,包含InputMethodService子类的那个包名.实现InputMethodService的子类的类名。这里比log中打印的完整类名少一个"/",请注意
补充说明:
KK的版本不需要一下修改:
上面的修改方法只适用于默认输入法为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");//这里修改默认选中的输入法
分享到:
相关推荐
MTK平台输入法.doc MTK平台输入法ZI详细解说
在高通平台8909上实现的修改默认google拼音输入法,及将apk预置到系统中
MTK输入法介绍
MTK Android 平台资料
android高通与mtk平台thermal管理机制,描述了如何定制Thermal与如何解读Thermal。
MTK平台下Android开发比较是本文要介绍的内容,这几年做了一些平台下的Android项目,下面具体对比一下几个平台Android开发,主要涉及的平台有Qualcomm,Freescale,MTK。这几个平台也都非常有代表性.
android sensor相关,平台为MTK,参考价值不错。
androidMTK修改备忘,8312平台
该patch支持Google自带相机打开USB摄像头,无需libuvc支持,也就是说应用就像处理mipi camera一样处理usb camera即可。注此patch基于MT8163,其他平台做相应移植即可
介绍 MTK平台 Android13 新特性(密码:3504710444)
MTK6577 Android源代码目录
MTK平台相关资料 MTK平台入门资料 MTK编译工具和辅助工具 MTK编译过程、烧写过程
MTK刷机平台 MTK刷机平台 MTK刷机平台 MTK刷机平台 MTK刷机平台 MTK刷机平台 MTK刷机平台
Android9.0平台MTK7668BU模块蓝牙+wifi驱动源码
一套完整的锁屏壁纸代码 里面含大量的android源码
css android iphone mtk css android iphone mtk css android iphone mtk css android iphone mtk css android iphone mtk
手机mtk平台软件架构mtk平台的教材等相关软件资料,还包含mtk平台现状及与其他平台对比分析,MTK手机软件系统工程和配置简介等