方法一:         修改文件如下:
               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. android 查看系统分配程序内存限制
  2. Android 文件管理器 Android文件管理器源代码
  3. Android AudioManager控制系统声音的流程
  4. Android创建隐藏文件或者文件夹
  5. Android apk获取系统权限
  6. Android中的File文件存储及读取file中的Bitmap
  7. Android利用drawable文件夹自定义控件背景、样式
  8. Android系统架构及特点

随机推荐

  1. MySQL 角色(role)功能介绍
  2. 浅谈Mysql多表连接查询的执行细节
  3. Mysql基础之常见函数
  4. MySQL分库分表与分区的入门指南
  5. MySQL8.0.24版本Release Note的一些改进
  6. 详解MySQL的半同步
  7. 详解MySQL事务的隔离级别与MVCC
  8. MySQL之高可用集群部署及故障切换实现
  9. 教你用eclipse连接mysql数据库
  10. MySQL 慢查询日志深入理解