android修改默认输入法
来源:互联网 发布:mp5冲锋枪知乎 编辑:程序博客网 时间:2024/04/28 14:12
今天无意间看到公司小贺写了一篇挺不错的文章,拿来学习一下。
相信好多朋友都改过默认输入法,我也改过,只不过有一点没注意到,就是切换语言后,默认输入法会不会变的问题。今天看到了这一点,觉得可以拿过来让大家也学学。
【声明】本文档均是以marvell项目代码为例,别的平台也可以类似修改
修改\frameworks\base\packages\SettingsProvider\res\values\defaults.xml该文件中的<stringname="def_enable_input_methods"> 和<stringname="def_input_method">这两项值便可以将第三方输入法设置为开机默认输入法。如下图所示:
图1
图1中def_enable_input_methods的字面意思为:可用输入法;
def_input_method的字面意思为系统默认输入法。从图中可知系统默认输入法为讯飞输入法。
获取上面两个key值的方法如下:
首先将需要预置的apk文件adb install到手机中(或者导入到T卡中安装):
1.勾选要默认使用的输入法,让当前手机的输入法为后安装的第三方输入法。
2.abdshell 进手机后将该文件导出,导出命令为:adb pull data/data/com.android.providers.settings/databases/settings.db
图2
3.用SQLite查看工具打开在secure中Data表中的最下面有enabled_input_methods和default_input_method这两个,来控制系统的默认输入法,将这两个所对应的值填写到defaults.xml文件中。如下图所示:
图3
4.frameworks\base\packages\SettingsProvider\src\com\android\providers\settings\DatabaseHelper.java中重载输入法
图4
经过如上的操作就完成了开机默认输入法为第三方输入法。我们大部分的同事都只修改到这里,是可以达到目的,可是还有个小问题。
因为当切换系统语言后,输入法会又变回android原生的输入法英文输入法,即androidkeyboard,源码的模块为LatinIME,后来经过marvell人员的技术支持,在/frameworks/base/core/java/com/android/internal/inputmethod/InputMethodUtils.java该文件内如下图位置
加入如下代码来对默认输入法进行判断:
if("com.baidu.input".equals(imi.getPackageName())) { return true; }
这样就避免了在切换系统语言时输入法发生改变的状况。
【注意】string的key值一定要与代码中的值相同。这样就实现了设置默认输入法的修改,如有问题请在后面回复。
最后提醒大家的是,在修改后如果没有效果,一定要检查是否在别的路径下有单拉的文件。前几天改默认输入法一直无法成功,就是因为在vender路径下有单拉的文件导致。
- Android 修改默认输入法
- android修改默认输入法
- Android 修改默认输入法
- 修改android默认输入法
- Android 如何修改默认输入法
- Android 如何修改默认输入法
- Android源码修改默认输入法
- 修改其他输入法为android 默认输入法
- android 4.0中修改默认输入法
- android root下修改默认输入法
- Android 默认输入法的修改方法
- Android修改默认的键盘输入法
- Android回顾之修改默认输入法
- Android系统默认输入法的修改
- Android系统默认输入法的修改
- Android替换/修改系统默认输入法
- Android输入法API及如何强制修改默认输入法
- 修改默认输入法
- uva10051(最长上升子序列 + 路径打印)
- JavaBean编程思想-读取数据库信息
- 关于iOS中sqlite No such collation sequence: LOCALIZED
- 二进制文件与文本文件
- Remove Element
- android修改默认输入法
- 删除字符串的空格
- 解剖Nginx·模块开发篇(3)ngx_http_hello_world_module 模块的基本函数实现
- hdu 4291 A Short problem(矩阵+取模循环节)
- 线程池原理并用C语言实现
- 40个GitHub上最受欢迎的iOS开源项目(二) .
- Python虚拟机运行过程
- windows 上使用wget
- 面试题3 二维数组中的查找