zoukankan      html  css  js  c++  java
  • 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资源覆盖)

  • 相关阅读:
    云架构师进阶攻略(1)
    针对云主机卡死问题的定位分析方法
    让App飞久一点
    OC静态代码检查实战
    PAT 1010. 一元多项式求导
    PAT 1009. 说反话
    PAT 1008 数组元素循环右移问题
    PAT 1007. 素数对猜想
    PAT 1006 换个格式输出整数
    PAT 1005 继续(3n+1)猜想
  • 原文地址:https://www.cnblogs.com/leishuanger/p/9958637.html
Copyright © 2011-2022 走看看