Android Q - 设置默认输入法
由于是默认系统语言改成了中文,输入法也需要对应的改成中文输入。设置过程分成两部分,一个是 adb,另一个是代码设置。在此,简单记录下。
adb 命令
如果像我一样不知道输入法的具体包名可以首先通过 adb 查看及测试。命令如下:
已安装的输入法列表 | adb shell ime list -s |
获取系统默认输入法 | adb shell settings get secure default_input_method |
设置系统默认输入法 | adb shell settings put secure default_input_method com.emoji.keyboard.touchpal.go/com.cootek.smartinput5.TouchPalIME |
获取系统已打开输入法 | adb shell settings get secure enabled_input_methods |
设置已打开输入法,多个输入法用":"隔开 |
adb shell settings put secure enabled_input_methods com.emoji.keyboard.touchpal.go/com.cootek.smartinput5.TouchPalIME: com.android.inputmethod.latin/.LatinIME |
例如:
代码设置
主要修改的文件目录位于 frameworks/base/ :
packages/SettingsProvider/res/values/defaults.xml
packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
diff --git a/packages/SettingsProvider/res/values/defaults.xml b/packages/SettingsProvider/res/values/defaults.xml
index ecf8180..114341b 100644
--- a/packages/SettingsProvider/res/values/defaults.xml
+++ b/packages/SettingsProvider/res/values/defaults.xml
@@ -17,6 +17,9 @@*/--><resources>
+ <!-- 设置默认输入法 -->
+ <string name="config_enabled_input_methods" translatable="false">com.emoji.keyboard.touchpal.go/com.cootek.smartinput5.TouchPalIME:com.android.inputmethod.latin/.LatinIME</string>
+ <string name="config_default_input_method" translatable="false">com.emoji.keyboard.touchpal.go/com.cootek.smartinput5.TouchPalIME</string><!-- 设置默认语言 --><string name="def_system_locales" translatable="false">zh-Hans-CN,en-US</string><bool name="def_dim_screen">true</bool>
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java b/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
index f3a2fd8..9409987 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
@@ -2359,6 +2359,13 @@ class DatabaseHelper extends SQLiteOpenHelper {loadSecure35Settings(stmt);+ loadStringSetting(stmt, Settings.Secure.ENABLED_INPUT_METHODS,
+ R.string.config_enabled_input_methods);
+
+ loadStringSetting(stmt, Settings.Secure.DEFAULT_INPUT_METHOD,
+ R.string.config_default_input_method);
+loadBooleanSetting(stmt, Settings.Secure.MOUNT_PLAY_NOTIFICATION_SND,R.bool.def_mount_play_notification_snd);
感觉通过 adb 命令执行成功了,基本也就成功了。
还有个关于输入法权限的,方法如下,感兴趣的可以试试。
/frameworks/base/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java 的 grantDefaultSystemHandlerPermissions 函数中,加入以下代码,注意包名修改为自己实际的。
--- a/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java
+++ b/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java
@@ -435,6 +435,14 @@ public final class DefaultPermissionGrantPolicy {String[] calendarSyncAdapterPackages = (syncAdapterPackagesProvider != null) ?syncAdapterPackagesProvider.getPackages(CalendarContract.AUTHORITY, userId) : null;+ // TouchPal
+ PackageInfo touchpal = getPackageInfo("com.emoji.keyboard.touchpal.go");
+ if (touchpal != null && doesPackageSupportRuntimePermissions(touchpal)) {
+ grantPermissionsToPackage(
+ touchpal, userId, false, true, true,
+ PHONE_PERMISSIONS, CONTACTS_PERMISSIONS, STORAGE_PERMISSIONS);
+ }
+
最后,感谢以下文章对我的帮助,感谢~
Android 9.0 添加预置第三方输入法/设置默认输入法(软键盘)_mob604756ff20da的技术博客_51CTO博客
android修改默认输入法 - petercao - 博客园
Android Q - 设置默认输入法相关推荐
- Android设置默认输入法
先安装想要设置默认的输入法 获取系统已安装的输入法ID /*** 获取系统已安装的输入法ID** @param context* @return*/public static String[] get ...
- android 设置默认输入法
设置默认输入法 在 frameworks/base/core/res/res/values/config.xml 添加一个属性: <!--leo add--> <string nam ...
- Android.Settings类设置默认输入法
Android的所有系统设置项(如音量.触摸提示音.默认输入法等信息)均是保存到一个数据库.在界面上调整设置时将值保存到该数据库,开机时将从数据库读取值作为默认设置.这些读取.设置操作都可以通过API ...
- android mtk平台,android mtk平台默认输入法
[Description] 如何修改默认输入法? [Solution] 一.适用于ICS(Android V4.0)之前的版本: 1. 安装需要用的默认输入法(.apk)到system/app 2. ...
- Android 修改系统默认输入法
原文出处:http://www.ccbu.cc/framework/modify-default-inputmethod.html 1. 修改系统默认输入法 Android系统的默认输入法在很多情况下 ...
- android9.0设置默认输入法
1.设置默认输入法 amlogic_t972/frameworks/base/services$ git diff core/java/com/android/server/InputMethodMa ...
- android 内置默认输入法
方法一: 修改文件如下: frameworks\base\packages\SettingsProvider\res\values\defaults.xml ...
- 设置默认输入法及输入法相关设置
测试平台 Platform: RK3399 OS: Android 7.1.1 需求 始终弹出软键盘 设置默认输入法 解决方案 始终弹出软键盘 : 系统默认当连接物理键盘时,虚拟键盘不会弹出. dif ...
- android7.0输入法切换,7.0 Android系统修改默认输入法后,切换系统语言时输入法自动切到AOSP的解决办法...
Android 7.0设置默认输入法参考下面的文章 Android修改默认输入法 切换系统语言之后,系统会默认将输入法切换到Andorid Keyboard(AOSP) /frameworks/bas ...
- Android定制出厂默认输入法
方法一: 修改文件如下: frameworks\base\packages\SettingsProvider\res\values\defaults.xml ...
最新文章
- 面试官:我把数据库部署在Docker容器内,你觉得如何?
- WordPress 2.9.2 使用感受
- 新版Edge浏览器弹出“ 禁用开发人员模式扩展 ”的解决方案
- 创建一个springMVC项目总结
- MRC522(2):超简易门禁
- 通过draggable实现布局_营销推广引流之百度霸屏内容详解 如何通过百度霸屏布局实现立体打法!...
- HTML 编辑器简介
- 建模方法(二)-组合优化问题的定义
- java解二元一次方程组_如何用C语言解二元一次方程组
- Unity3D优化:分场景烘焙,综合场景加载
- 【番杰的小技巧笔记】查看windows许可证到期时间
- FinalShell使用教程:SSH链接Linux服务器
- 小马哥---高仿三星Galaxy J100H主板型号J7210国外版 刷机拆机图
- 全能UI设计师到底需要具备哪些能力呢?
- C fread()函数
- wxpython应用程序_用wxPython创建GUI应用程序展示NASA图片(第一部分)
- Java程序员必会的Spring AOP在实际项目中的应用
- 数字图像处理 图像变换
- Spark中的spark.sql.shuffle.partitions 和spark.default.parallelism参数设置默认partition数目
- 梦里Babel知多少(一)
热门文章
- iOS小技能:金额格式处理 (货币符号本地化)
- HTML基础 - HTML文本格式
- PID控制器、试凑法整定
- A到Z的unicode的编码的大小
- NLPIR大数据语义系统KGB技术引领新方向
- KGB知识图谱帮助金融机构进行风险预判
- 计算机笔记本电脑加固态硬盘,笔记本固态硬盘,教您怎么给笔记本加固态硬盘...
- TypeError: empty() received an invalid combination of arguments 报错
- APE转MP3的转换码率说明
- 五星大饭店剧情,五星大饭店在线观看