转眼2025年已然来到了6月,今年即将过半,各位今年都还好吗?今天要分享的是系统默认输入法替换与设置。
在Android Framework定制开发中,由于默认是谷歌的拼音输入法,所以经常会遇到改为其他输入法,或者定制输入法的需求,因此配置系统默认输入法就必不可免了。
如何配置
配置系统输入法其实非常简单,一共就只分为2步:
- 集成目标输入法
- 配置默认属性
一、集成输入法
这一步和集成任何三方APK没有什么区别,具体可以分为以下四步进行。 注:后文所有的代码示例、截图等均基于MTK+Android10系统。
Step1:放入apk程序/源码到对应目录
将三方apk或者源码放入packages/apps目录下,我这边是放入apps目录的,原生输入法对应的就是inputmethods目录。
Step2:配置编译文件
我这里使用的是搜狗输入法apk。
Step3:集成编译
将上面配置的输入法编译到系统中,在device.mk中使用以下方式:
PRODUCT_PACKAGES += SogouInput
Step4:赋予权限
一些三方或者定制输入法可能会涉及到一些特殊应用权限,所以需要我们提前做个声明配置,可以考虑在以下几处配置就行:
frameworks/base/data/etc/privapp-permissions-platform.xml
frameworks/base/data/etc/platform.xml
device/mediatek/system/common/default-permissions-cneeds.xml
以下为default-permissions-cneeds.xml的配置示例:
二、设置为默认输入法
设置默认输入法也可以简单分为两步:
Step1:设置默认值
通过配置两个属性值,即可将目标输入法设置为默认输入法了。
// 这里是将搜狗输入法设置为默认输入法的示例
<string name="def_input_method" translatable="false">com.sohu.inputmethod.sogou/.SogouIME</string>
<string name="def_enabled_input_methods" translatable="false">com.sohu.inputmethod.sogou/.SogouIME</string>
对应文件:vendor/mediatek/proprietary/packages/apps/SettingsProvider/res/values/default.xml
注:可能有的使用三方输入法的,不太清楚这个值具体是什么,其实也比较简单,查询方式有很多种,个人推荐先安装到设备上,然后使用以下命令查询已安装输入法信息即可:
// 列出当前设备中所有安装的输入法信息
adb shell ime list -s
Step2:配置虚拟键盘
这一步主要是部分固件刷机后的使用场景是不会有外接键盘的,所以这个时候就需要我们开启虚拟键盘配置,不然用户点击输入框是没有办法看到软件盘的。
所以是否配置这一点需要根据你的实际应用场景确定,具体的修改方式主要是将属性show_ime_with_hard_keyboard设置为true,就表示无论是否有外接键盘,都可以显示软键盘。
属性对应的文件:frameworks\base\packages\SettingsProvider\res\values\default.xml
三、扩展
当你系统中存在多个输入法时,可以通过系统设置默认输入法,也可以通过adb进行设置,具体的设置命令如下:
adb shell ime enable com.google.android.inputmethod.pinyin/.PinyinIME
adb shell ime set com.google.android.inputmethod.pinyin/.PinyinIME
至此,系统默认输入法的集成、设置就顺利完成了,也愿看到这里的各位,接下来的工作和生活,也能简单、顺遂。
我是一念,感谢您的观看,我将持续分享个人关于技术的一些学习、感悟~
本文首发于个人微信公众号【一念杂记】,欢迎关注第一时间获取个人更多分享:mp.weixin.qq.com/s/Seobzdh57…