当前位置: 首页 > news >正文

Android 配置默认输入法

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)加载默认属性

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.lryc.cn/news/484140.html

相关文章:

  • 交易术语汇总(Technical Trading Dictionary)
  • 【Docker】Docker基础及docker-compose
  • 从零开始的 Hugging Face 项目:我的首个在线 SQL 查询工具之旅20241111
  • 让AI为你发声!Windows电脑快速部署ChatTTS文本转语音神器
  • 【AI换脸整合包及教程】FaceFusion 3.0.0:AI换脸技术的革新之旅
  • 更新对象或数组的值的方法
  • Java线程池浅谈(创建线程池及线程池任务处理)
  • Dockerfile的使用
  • 自動換IP為什麼會不穩定?
  • 【0x0043】HCI_Write_Inquiry_Scan_Type详解
  • 飞牛云fnOS本地部署WordPress个人网站并一键发布公网远程访问
  • ctfshow-web入门-SSTI(web361-web368)上
  • pyinstaller+upx给python GUI程序添加自定义图标
  • LeetCode【0034】在排序数组中查找元素的第一个和最后一个位置
  • react-markdown内容宽度溢出和换行不生效问题
  • uniapp 上传 base64 图片
  • 让Git走代理
  • 通义千问API调用测试 (colab-python,vue)
  • H3C ER8300G2-X未授权导致信息泄露漏洞(CVE-2024-32238)
  • 随手记:简单实现纯前端文件导出(XLSX)
  • SwiftUI 高级开发教程系列 - 第 3 章:数据持久化
  • 代码随想录第二十四天| 93.复原IP地址 78.子集 90.子集II
  • Linux编程:基于 Unix Domain Socket 的进程/线程间通信实时性优化
  • PET-文件包含-FINISHED
  • 《WebGL编程指南》书籍分享
  • go T 泛型
  • React的基础API介绍(二)
  • 远程开发测试必看:如何在群晖NAS上运行网页版Ubuntu
  • JAVA题目笔记(十五)经典算法题
  • 「Mac玩转仓颉内测版8」入门篇8 - Cangjie函数与方法