Android11修改第三方输入法为默认输入法,使用触觉智能瑞芯微RK3566鸿蒙开发板演示
本文适用于触觉智能所有支持Android11系统的开发板修改第三方输入法为默认输入法。本次使用的是触觉智能的Purple Pi OH鸿蒙开源主板,搭载了瑞芯微RK3566芯片,类树莓派设计,是Laval官方社区主荐的一款鸿蒙开发主板。
安装输入法并查看输入法包名
本次要安装的是百度输入法,安装方法如下:
1.1 adb命令行方式安装
电脑键盘通过win+R组合键弹出输入框,输入cmd进入电脑终端,并执行以下命令:
#查看是否识别到adb设备
adb.exe devices
#让系统获取root权限
adb.exe root
#让系统可读可写
adb.exe remount
#开始安装
adb.exe install /your/target/path/baidu.apk

1.2 U盘/TF卡安装
将输入法apk放置U盘/TF内,插入主板识别到设备后,进入系统桌面找到【资源管理器】应用,点击U盘输入法apk应用安装即可。
安装成功
1.3 查看输入法包名
# ime list -s
com.baidu.input/.ImeService
输出的结果就是该输入法的包名/类名。
系统预安装输入法应用
将需要预安装的百度输入法APK放置
device/rockchip/rk356x/rk3566_r/preinstall_del/目录下(没有preinstall_del目录就手动创建一个即可),并添加以下文件:
-
Android.mk
-
baidu.apk(APK)
-
preinstall.mk
Android.mk文件内容:
include $(call all-subdir-makefiles)
preinstall.mk文件内容:
PRODUCT_PACKAGES += baidu
注意:baidu为APK名字,例如baidu.apk。
修改输入法环境变量
将前面第一步获取到的百度输入法包名/类名添加到以下文件:
frameworks/base/packages/SettingsProvider/res/values/defaults.xml
内容如下:
<!-- should show the screenshot button default -->
<integer name="def_screenshot_button_show">0</integer>
+ <!-- set default input method-->
+ <string name="config_default_input_method" translatable="false">com.baidu.input/.ImeService</string>
</resources>
修改默认输入法
将前面输入法环境添加到以下文件:
frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
添加内容如下:
class DatabaseHelper extends SQLiteOpenHelper {
loadIntegerSetting(stmt, Settings.Secure.SLEEP_TIMEOUT,
R.integer.def_sleep_timeout);
+ loadStringSetting(stmt, Settings.Secure.DEFAULT_INPUT_METHOD, R.string.config_default_input_method);//add hjt
/*
* IMPORTANT: Do not add any more upgrade steps here as the global,
* secure, and system settings are no longer stored in a database
添加完重新编译源码即可。
查看百度输入法是否为默认输入法
命令行
# settings get secure default_input_method
com.baidu.input/.ImeService
设置默认输入法成功
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现