正文   一、适用于ICS(Android V4.0)之前的版本: 1. 安装需要用的默认输入法(.apk)到system/app 2. 修改文件 frameworks/base/packages/SettingsProvider/res/values/defaults.xml 默认输入法 ID 红色标记表示输入法 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");//这里修改默认选中的输入法

更多相关文章

  1. android AsyncQueryHandler的分析
  2. NestedScrollView、ScrollView 加载完自动滑动至底部问题的解决
  3. Android开发:TabActivity中onKeyDown无法响应的解决方法
  4. android 开发 View _1_ View的子类们 和 视图坐标系图
  5. 【转】Android输入法框的梳理
  6. 让Android软键盘默认进入英文键盘
  7. android输入法01:SoftKeyboard源码解析03
  8. android给 TextView 加上效果和事件响应 判断是否点击函数
  9. Android点击空白区域,隐藏输入法软键盘

随机推荐

  1. curl和wget使用
  2. CentOS7部署VNC
  3. Java自学指南七、规划
  4. Oracle总结【SQL细节、多表查询、分组查
  5. Struts2【入门】
  6. IDA静态分析
  7. 什么是协程?Java中如何支持?
  8. 静态路由实例
  9. chrony用法
  10. 浅谈CDN、SEO、XSS、CSRF