默认搜狗输入法

方法一

  1. frameworks\base\packages\SettingsProvider\res\values\defaults.xml
1
2
3
4
   <!--create by chensy 默认搜狗输入法-->
<!--<string name="def_input_method" translatable="false">com.android.inputmethod.pinyin/.PinyinIME</string> -->
<string name="def_input_method" translatable="false">com.sohu.inputmethod.sogou/.SogouIME</string>
<!--create by chensy 默认搜狗输入法-->
  1. frameworks\base\packages\SettingsProvider\src\com\android\providers\settings\DatabaseHelper.java
1
loadStringSetting(stmt, Settings.Secure.DEFAULT_INPUT_METHOD,R.string.def_input_method);
  1. 系统要安装搜狗输入法,或预置到系统中

方法二

  1. 在 frameworks\base\core\res\res\values\config.xml 添加一个属性:
1
2
<string name="config_default_input_method" translatable="false">
com.sohu.inputmethod.sogou/.SogouIME</string>

frameworks\base\services\java\com\android\server\InputMethodManagerService.java 的方法 buildInputMethodListLocked() 里添加:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
String defaultIme = Settings.Secure.getString(mContext 
.getContentResolver(), Settings.Secure.DEFAULT_INPUT_METHOD);

if ( defaultIme == null )
{
final Resources res = mContext.getResources();
try
{
//frameworks\base\core\res\res\values\config.xml
String myIME = res.getString( com.android.internal.R.string.config_default_input_method );
if ( myIME != null && myIME.length() > 0 )
{
Settings.Secure.putString( mContext.getContentResolver(),
Settings.Secure.DEFAULT_INPUT_METHOD,
myIME );
}
}
catch ( Exception e )
{
}
}


2. 系统要安装搜狗输入法,或预置到系统中

将系统中所有输入法设置为可用

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

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

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

1
2
3
4
5
6
百度: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