Android 配置默认输入法

ops/2024/11/17 5:55:01/

1.背景

最近有个国内的项目,预制了输入法apk,但是无法调出软键盘。原因是没有配置默认输入法,本文主要记录下如何配置默认输入法。

2.代码设置

设置默认输入法需要配置Settings.Secure.ENABLED_INPUT_METHODS和Settings.Secure.DEFAULT_INPUT_METHOD的值。

(1)添加默认属性

frameworks/base/packages/SettingsProvider/res/values/defaults.xml
<string name="enabled_input_methods" translatable="false">com.android.inputmethod.latin/.LatinIME:com.xxx.xxx/.LatinIME:com.xxx.xxx/com.xxx.xxx.LatinIME</string>
<string name="def_input_method" translatable="false">com.xxx.xxx/com.xxx.xxx.LatinIME</string>

(2)加载默认属性

java">frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
private void loadSecureSettings(SQLiteDatabase db) {SQLiteStatement stmt = null;try {stmt = db.compileStatement("INSERT OR IGNORE INTO secure(name,value)"+ " VALUES(?,?);");......loadIntegerSetting(stmt, Settings.Secure.SLEEP_TIMEOUT,R.integer.def_sleep_timeout);//add for default methodloadStringSetting(stmt, Settings.Secure.ENABLED_INPUT_METHODS,R.string.enabled_input_methods);loadStringSetting(stmt, Settings.Secure.DEFAULT_INPUT_METHOD,R.string.def_input_method);//add for default method/** IMPORTANT: Do not add any more upgrade steps here as the global,* secure, and system settings are no longer stored in a database* but are kept in memory and persisted to XML.** See: SettingsProvider.UpgradeController#onUpgradeLocked*/} finally {if (stmt != null) stmt.close();}}

PS:如果无法确认enabled_input_methods 和def_input_method的值的话,可以在设置里手动将内置的输入法apk设置成默认输入法,然后通过adb shell 命令查看当前默认输入法的对应值。

adb shell settings get secure default_input_method
adb shell settings get secure enabled_input_methods

adb shell ime list -a可以查看已安装的输入法apk的属性


http://www.ppmy.cn/ops/134347.html

相关文章

比ChatGPT更酷的AI工具

相较于寻找比ChatGPT更酷的AI工具&#xff0c;这听起来似乎是个挑战&#xff0c;因为ChatGPT已经以它强大的综合性能在AI界大名鼎鼎。然而&#xff0c;每个工具都有其独特的优势&#xff0c;特别是在特定的应用场景下&#xff0c;其他AI工具可能会展现出与ChatGPT不同的魅力。接…

上市公司代理成本数据大全(第一类和第二类代理成本均有)1991-2023年

一、计算方式&#xff1a; &#xff08;1&#xff09; 第一类代理成本 AC1:经营费用率&#xff0c;参考顶刊《管理世界》李文贵和余明桂(2015)老师的研究构建代理成本 AC2:管理费用率&#xff0c;参考C刊《经济管理》彭雅哲和汪昌云(2021) 老师的研究构建代理成本 AC3:资产周转…

数据结构题集-第二章-线性表-有序线性表的交集

有序线性表的交集 说明2.25 假设两个元素依值递增有序排列的线性表A和B 说明 本文参照严蔚敏《数据结构(C语言版)题集》一书中包含的问答题和算法设计题目&#xff0c;提供解答和算法的解决方案。请读者在自己已经解决了某个题目或进行了充分的思考之后&#xff0c;再参考本解…

集群搭建高可用

contos7.9 部署3节点 hadoop3.4 高可用集群 contos7.9 部署3节点 hadoop3.4 高可用集群环境信息Hadoop与Zookeeper的版本对应关系服务器角色分配使用端口服务器配置配置免密登录服务器配置初始化 init_server.sh配置主机名映射所有节点配置 hosts文件 hadoop 安装环境配置下载安…

桥梁缺陷YOLO免费数据集分享 – 6308张已标注8类缺陷图像

本次分享的是一套高质量的桥梁缺陷YOLO数据集&#xff0c;主要以混凝土桥梁为对象&#xff0c;包含了大量真实的桥梁缺陷图像&#xff0c;旨在支持桥梁检测、结构健康监测以及缺陷自动识别的相关研究与应用。该数据集经过精心标注&#xff0c;包含了8种主要的桥梁缺陷类别&…

UG Motion学习笔记2【正解 反解】

使用软件&#xff1a;SP Model NX12.0 Robot Arm的正解&#xff1a; &#xff08;先添加关节驱动&#xff0c;进行正解。再添加连杆驱动&#xff0c;进行反解。&#xff09; 直接点击_step.prt零件打开。一共7个构件&#xff0c;6个运动副&#xff08;圆片&#xff0c;转角&…

矩阵起源入选IDC《RAG与向量数据库市场前景预测》报告

近日&#xff0c;国际知名市场研究机构IDC发布了《RAG与向量数据库市场前景预测》报告&#xff0c;分析了检索增强生成&#xff08;RAG&#xff09;和向量数据库市场的发展趋势和技术走向。报告中提到&#xff0c;生成式AI的大规模应用使向量数据库成为重要的基础设施&#xff…

Vue中的导航守卫有哪三种?分别有什么作用

Vue Router中的导航守卫主要分为三种&#xff1a;全局前置守卫、全局解析守卫和全局后置钩子。每种守卫都有其特定的作用&#xff0c;以下是对这三种导航守卫的详细解释&#xff1a; 1. 全局前置守卫&#xff08;beforeEach&#xff09;作用&#xff1a; 全局的权限验证&…