由于是默认系统语言改成了中文,输入法也需要对应的改成中文输入。设置过程分成两部分,一个是 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 - 设置默认输入法相关推荐

  1. Android设置默认输入法

    先安装想要设置默认的输入法 获取系统已安装的输入法ID /*** 获取系统已安装的输入法ID** @param context* @return*/public static String[] get ...

  2. android 设置默认输入法

    设置默认输入法 在 frameworks/base/core/res/res/values/config.xml 添加一个属性: <!--leo add--> <string nam ...

  3. Android.Settings类设置默认输入法

    Android的所有系统设置项(如音量.触摸提示音.默认输入法等信息)均是保存到一个数据库.在界面上调整设置时将值保存到该数据库,开机时将从数据库读取值作为默认设置.这些读取.设置操作都可以通过API ...

  4. android mtk平台,android mtk平台默认输入法

    [Description] 如何修改默认输入法? [Solution] 一.适用于ICS(Android V4.0)之前的版本: 1. 安装需要用的默认输入法(.apk)到system/app 2. ...

  5. Android 修改系统默认输入法

    原文出处:http://www.ccbu.cc/framework/modify-default-inputmethod.html 1. 修改系统默认输入法 Android系统的默认输入法在很多情况下 ...

  6. android9.0设置默认输入法

    1.设置默认输入法 amlogic_t972/frameworks/base/services$ git diff core/java/com/android/server/InputMethodMa ...

  7. android 内置默认输入法

    方法一: 修改文件如下:                frameworks\base\packages\SettingsProvider\res\values\defaults.xml        ...

  8. 设置默认输入法及输入法相关设置

    测试平台 Platform: RK3399 OS: Android 7.1.1 需求 始终弹出软键盘 设置默认输入法 解决方案 始终弹出软键盘 : 系统默认当连接物理键盘时,虚拟键盘不会弹出. dif ...

  9. android7.0输入法切换,7.0 Android系统修改默认输入法后,切换系统语言时输入法自动切到AOSP的解决办法...

    Android 7.0设置默认输入法参考下面的文章 Android修改默认输入法 切换系统语言之后,系统会默认将输入法切换到Andorid Keyboard(AOSP) /frameworks/bas ...

  10. Android定制出厂默认输入法

    方法一: 修改文件如下:                frameworks\base\packages\SettingsProvider\res\values\defaults.xml        ...

最新文章

  1. 面试官:我把数据库部署在Docker容器内,你觉得如何?
  2. WordPress 2.9.2 使用感受
  3. 新版Edge浏览器弹出“ 禁用开发人员模式扩展 ”的解决方案
  4. 创建一个springMVC项目总结
  5. MRC522(2):超简易门禁
  6. 通过draggable实现布局_营销推广引流之百度霸屏内容详解 如何通过百度霸屏布局实现立体打法!...
  7. HTML 编辑器简介
  8. 建模方法(二)-组合优化问题的定义
  9. java解二元一次方程组_如何用C语言解二元一次方程组
  10. Unity3D优化:分场景烘焙,综合场景加载
  11. 【番杰的小技巧笔记】查看windows许可证到期时间
  12. FinalShell使用教程:SSH链接Linux服务器
  13. 小马哥---高仿三星Galaxy J100H主板型号J7210国外版 刷机拆机图
  14. 全能UI设计师到底需要具备哪些能力呢?
  15. C fread()函数
  16. wxpython应用程序_用wxPython创建GUI应用程序展示NASA图片(第一部分)
  17. Java程序员必会的Spring AOP在实际项目中的应用
  18. 数字图像处理 图像变换
  19. Spark中的spark.sql.shuffle.partitions 和spark.default.parallelism参数设置默认partition数目
  20. 梦里Babel知多少(一)

热门文章

  1. iOS小技能:金额格式处理 (货币符号本地化)
  2. HTML基础 - HTML文本格式
  3. PID控制器、试凑法整定
  4. A到Z的unicode的编码的大小
  5. NLPIR大数据语义系统KGB技术引领新方向
  6. KGB知识图谱帮助金融机构进行风险预判
  7. 计算机笔记本电脑加固态硬盘,笔记本固态硬盘,教您怎么给笔记本加固态硬盘...
  8. TypeError: empty() received an invalid combination of arguments 报错
  9. APE转MP3的转换码率说明
  10. 五星大饭店剧情,五星大饭店在线观看