Android输入法

1. 输入法源码位置

   packages/inputmethods

2.各输入法名称

 

3. 修改输入法

(1)原生输入法

       LatinIME

(2)数据库字段定义位置

       文件位置:frameworks/base/core/java/android/provider/Settings.java文件中:

         public static final String DEFAULT_INPUT_METHOD = "default_input_method";  //默认输入法
         public static final String ENABLED_INPUT_METHODS = "enabled_input_methods"; //激活使用的输入法
(3)数据库获取输入法命令

$ adb shell settings get secure default_input_method
com.sohu.inputmethod.sogou/.SogouIME
$ adb shell settings
get secure enabled_input_methods com.sohu.inputmethod.sogou/.SogouIME:com.android.inputmethod.latin/.LatinIME

 (4)修改默认的输入法

    文件位置:frameworks/base/packages/SettingsProvider/res/values/defaults.xml

   修改方法:

<string name="config_default_input_method" translatable="false">com.sohu.inputmethod.sogou/.SogouIME</string>
<string name="config_enabled_input_method" translatable="false">com.sohu.inputmethod.sogou/.SogouIME:com.android.inputmethod.latin/.LatinIME</string>

(5)初始化加载设定输入法

   文件位置:frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java

   修改方法:

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

loadStringSetting(stmt, Settings.Secure.ENABLED_INPUT_METHODS,R.string.config_enabled_input_method);

(6)注意

     大多数第三方厂商会通过overlay的形式,在其同名defaults.xml中,对config_default_input_method和config_enabled_input_method的值进行覆盖,因此,如果默认输入法修改了不生效,就要查一查是否有overlay目录,将我们设置的值给覆盖了。(一般可以在device和vendor目录下查询 “DEVICE_PACKAGE_OVERLAYS” 关键字确认是否有overlay资源覆盖)

 

posted on 2018-11-14 16:38  world_hello!!!!  阅读(346)  评论(0编辑  收藏  举报

导航