方法一:         修改文件如下:
               frameworks\base\packages\SettingsProvider\res\values\defaults.xml 
               frameworks\base\packages\SettingsProvider\src\com\android\providers\settings\DatabaseHelper.java 
           一些系统定制信息是通过  frameworks/base/package/settingsproviders/res/values/defaults.xml 来预设的,         在系统首次启动时加载此文件,并应用文件中的设置。文件如下: 

        例子: 设置默认输入法为google拼音 
           M    frameworks\base\packages\SettingsProvider\res\values\defaults.xml            [java]  view plain  copy
  1. "config_default_input_method" translatable="false">  
  2.  com.android.inputmethod.pinyin/.PinyinIME   

  
           frameworks\base\packages\SettingsProvider\src\com\android\providers\settings\DatabaseHelper.java
                   在loadSecureSettings()中增加一条语句,制定默认使能的输入法              [java]  view plain  copy
  1. loadStringSetting(stmt, Settings.Secure.ENABLED_INPUT_METHODS,   
  2.                       R.string.config_default_input_method );   

方法二:            修改文件如下:
                   frameworks\base\core\res\res\values\config.xml 
                   frameworks\base\services\java\com\android\server \InputMethodManagerService.java

           在 frameworks\base\core\res\res\values\config.xml 添加一个属性:             [java]  view plain  copy
  1. "config_default_input_method" translatable="false">  
  2.  com.android.inputmethod.pinyin/.PinyinIME   

           frameworks\base\services\java\com\android\server\InputMethodManagerService.java  的方法 buildInputMethodListLocked() 里添加:      [java]  view plain  copy
  1. String defaultIme = Settings.Secure.getString(mContext   
  2.              .getContentResolver(), Settings.Secure.DEFAULT_INPUT_METHOD);   
  3.   
  4.      if ( defaultIme == null )   
  5.      {   
  6.          final Resources res = mContext.getResources();   
  7.          try   
  8.          {   
  9.              //frameworks\base\core\res\res\values\config.xml   
  10.              String myIME = res.getString( com.android.internal.R.string.config_default_input_method );   
  11.              if ( myIME != null && myIME.length() > 0 )   
  12.              {   
  13.                  Settings.Secure.putString( mContext.getContentResolver(),   
  14.                          Settings.Secure.DEFAULT_INPUT_METHOD,   
  15.                          myIME );   
  16.              }   
  17.          }   
  18.          catch ( Exception e )   
  19.          {   
  20.          }   
  21.      }   

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

1.  frameworks\base\packages\SettingsProvider\res\values\defaults.xml 文件中修改默认输入法为搜狗输入法

        com.sohu.inputmethod.sogou/.SogouIME

       

        com.sohu.inputmethod.sogou/.SogouIME

       

 

2.  frameworks\base\packages\SettingsProvider\src\com\Android\providers\settings\DatabaseHelper.java  

        在loadSecureSettings()中增加一条语句,制定默认使能的输入法

        loadStringSetting(stmt, Settings.Secure.DEFAULT_INPUT_METHOD,R.string.config_default_input_method);

        loadStringSetting(stmt, Settings.Secure.DEFAULT_INPUT_METHOD,R.string.def_enabled_input_methods);


3.  将搜狗输入法放到system/app中


/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


1、 需要提前将用到的默认输入法(.apk)内置到系统中

2、将系统中所有的输入法设置为可用,修改

frameworks/base/core/java/com/Android/internal/inputmethod/InputMethodUtils.java

[java]  view plain  copy  
  1.         public void enableAllIMEsIfThereIsNoEnabledIME() {  
  2. -           if (TextUtils.isEmpty(getEnabledInputMethodsStr())) {  
  3. +           if (!TextUtils.isEmpty(getEnabledInputMethodsStr())) {  
  4.                 StringBuilder sb = new StringBuilder();  
  5.                 final int N = mMethodList.size();  

3、设置默认输入法为你想要的,例如谷歌拼音,修改

frameworks/base/packages/SettingsProvider/res/values/defaults.xml

[java]  view plain  copy  
  1. +  "def_input_method" translatable="false">com.android.inputmethod.pinyin/.PinyinIME  

frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java

[java]  view plain  copy  
  1. -String config_defaultIME=mContext.getResources().getString(R.string.config_defaultIME);  
  2. -if(config_defaultIME!=null&&(!" ".equals(config_defaultIME)))  
  3. -loadSetting(stmt,Settings.Secure.DEFAULT_INPUT_METHOD,config_defaultIME);  
  4.   
  5. +loadStringSetting(stmt, Settings.Secure.DEFAULT_INPUT_METHOD,  
  6. +R.string.def_input_method );  

PS:附上常见输入法的包名和类名

百度: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




更多相关文章

  1. NPM 和webpack 的基础使用
  2. 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程
  3. Android(安卓)Studio下项目编译出错could not find com.android.
  4. Android(安卓)IMF学习笔记二
  5. android资料下载地址汇总
  6. CreateProcess error = 2,系统找不到指定的文件
  7. Android(安卓)文件管理器 Android文件管理器源代码
  8. Android(安卓)工程混淆后无法找到自定义控件类的解决方案
  9. 在Android中使用FFmpeg(android studio环境) 合成音频与视频

随机推荐

  1. 微软与哲学的距离
  2. 真正的高手都在讲故事
  3. pgsql查看主备节点的方法
  4. Python如何开发网站?这两个不能少!
  5. Android(安卓)8.0的scan流程
  6. android自带的下拉刷新控件SwipeRefreshL
  7. android百度地图开发之步行路线规划
  8. Android(安卓)Zygote进程启动过程
  9. 关于Android(安卓)打开新的Activity 虚拟
  10. android-如何在子线程中更新ui