Android11 添加输入法并且设置默认

在QCS6125硬件和Android11软件平台上,通过修改SettingsProvider的defaults.xml和DatabaseHelper.java文件,将三方输入法com.kanyun.megrez.inputmethod.pinyin/.PinyinIME设为默认输入法。配置包括在defaults.xml中添加默认输入法和启用输入法的字符串,以及在DatabaseHelper.java中加载相关设置。若要检查配置是否成功,可以通过命令行工具使用settingsgetsecuredef_input_method和settingsgetsecureenabled_input_method命令,或者使用imelist-s查看输入法ID。

硬件平台:QCS6125

软件平台:Android11

    添加三方输入法作为默认输入法,具体改动如下:

diff --git a/packages/SettingsProvider/res/values/defaults.xml b/packages/SettingsProvider/res/values/defaults.xml
index 4fd30c5226d..c10e354535d 100755
--- a/packages/SettingsProvider/res/values/defaults.xml
+++ b/packages/SettingsProvider/res/values/defaults.xml
@@ -62,6 +62,10 @@
     <bool name="def_mount_ums_prompt">true</bool>
     <bool name="def_mount_ums_notify_enabled">true</bool>
 
+    <!-- set default input method-->
+    <string name="def_input_method" translatable="false">com.kanyun.megrez.inputmethod.pinyin/.PinyinIME</string>
+    <string name="enabled_input_methods" translatable="false">com.kanyun.megrez.inputmethod.pinyin/.PinyinIME:com.android.inputmethod.pinyin/.PinyinIME</string>
+
     <!-- user interface sound effects -->
     <integer name="def_power_sounds_enabled">1</integer>
     <string name="def_low_battery_sound" translatable="false">/product/media/audio/ui/LowBattery.ogg</string>
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java b/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
index 72a53305531..cbc7193607d 100755
--- a/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
@@ -2322,6 +2322,11 @@ class DatabaseHelper extends SQLiteOpenHelper {
             stmt = db.compileStatement("INSERT OR IGNORE INTO secure(name,value)"
                     + " VALUES(?,?);");
 
+            loadStringSetting(stmt, Settings.Secure.DEFAULT_INPUT_METHOD,
+                    R.string.def_input_method);
+            loadStringSetting(stmt, Settings.Secure.ENABLED_INPUT_METHODS,
+                    R.string.enabled_input_methods);
+
             // Don't do this.  The SystemServer will initialize ADB_ENABLED from a
             // persistent system property instead.
             //loadSetting(stmt, Settings.Secure.ADB_ENABLED, 0);

具体配置项的字串怎么获取呢?安装上apk,在settings界面选中该输入法,然后命令行

settings get secure def_input_method;

settings get secure enabled_input_method

如果值不正确,配置失败,也可以shell进去,通过

trinket:/ # ime list -s                                                                                                                                          com.kanyun.megrez.inputmethod.pinyin/.PinyinIME

命令查看输入法ID信息。

拿到值设置到SettingsProvider的配置文件即可。

<think>首先,用户的问题是:“我想查找在Android 11系统中添加谷歌中文输入法的方法 请问如何在Android 11系统中添加谷歌中文输入法”。我需要基于提供的引用信息来回覆。 回顾引用内容: - [^1]: 提到android输入法设置中文,但主要是关于模拟器和测试的。 - [^2]: 关于Android输入法开发,具体是PinyinIME源码解析,强调输入事件的接收和处理。 - [^3]: 配置输入法为系统默认,指定默认输入法为com.google.android.inputmethod.pinyin/.PinyinIME。 - [^4]: 编译细节,关于PinyinIME的Android.mk文件。 - [^5]: 在Android 11添加输入法设置默认,提到了使用ime命令。 用户的需求是如何在Android 11系统中添加谷歌中文输入法。谷歌中文输入法很可能指的是PinyinIME,从引用[^2]和[^3]中可以看出。 关键点: - 添加输入法:通常涉及安装APK或配置系统。 - 设置默认:引用[^3]和[^5]提供了线索。 从引用[^3]:它展示了如何在系统设置中指定默认输入法为com.google.android.inputmethod.pinyin/.PinyinIME。 从引用[^5]:它提到了使用shell命令ime list -s来列出输入法。 我的回答需要基于这些引用,并提供清晰的步骤。 回答结构:系统指令要求使用中文回答,结构清晰。步骤包括: 1. 添加输入法:安装或启用谷歌拼音输入法。 2. 设置默认:配置为系统默认输入法。 引用中提到的方法: - 添加输入法:从引用[^4],这似乎是编译时的配置,但用户可能是在终端设备上操作。引用[^5]提到了添加输入法。 引用[^5]说:"可以在shell中使用ime命令添加设置输入法。" 具体命令是ime list -s列出输入法。 为了添加输入法,可能需要安装APK。引用[^1]中提到模拟器,但用户是针对Android 11系统。 真实场景:对于终端用户,添加谷歌中文输入法通常通过Google Play Store安装"谷歌拼音输入法"应用。然后进入系统设置启用它。 但用户指定了Android 11系统,可能是在开发或定制ROM,因为引用提到了源码和系统配置。 用户说:"我想查找在Android 11系统中添加谷歌中文输入法的方法",上下文是开发者或定制系统,因为引用来自技术文档。 从引用[^3]和[^5],添加方法涉及修改系统属性或使用命令。 总结步骤: 1. 确保谷歌拼音输入法已安装或编译到系统中。 2. 启用输入法。 3. 设置默认输入法。 具体方法: - 安装输入法:可以通过安装APK(如从Google Play或预置)。 - 设置默认:引用[^3]显示在frameworks/base/packages/SettingsProvider/res/values/defaults.xml中添加<string name="def_input_method">com.google.android.inputmethod.pinyin/.PinyinIME</string> - 引用[^5]提到使用ime命令:adb shell ime set com.kanyun.megrez.inputmethod.pinyin/.PinyinIME 或类似(引用中是com.kanyun,但应该是谷歌的)。 在引用[^3]中是com.google.android.inputmethod.pinyin/.PinyinIME 在引用[^5]中是com.kanyun.megrez.inputmethod.pinyin/.PinyinIME,但用户要求谷歌的,所以用com.google版本。 如何添加: - 对于开发者或系统集成者:修改系统配置,如defaults.xml或使用makefile(引用[^4])。 - 对于最终用户:只需安装应用并设置。 用户的问题可能针对开发者,因为引用是源码级的。 为了回答: - 解释添加输入法的方法。 - 解释设置默认的方法。 - 基于引用提供具体代码或命令。 最后,按要求生成相关问题。 系统指令要求:在回答中引用的段落末尾自然地添加引用标识,如[^1]。 所以,我需要引用相关部分。 结构回答: 1. 介绍:简要说明如何在Android 11添加谷歌中文输入法。 2. 步骤: a. 添加输入法(安装或编译)。 b. 设置默认输入法。 3. 提供示例代码或命令。 4. 生成相关问题。 使用中文。 确保LaTeX语法正确:用户的问题没有数学表达式,但如果有,要用$...$或$$...$$。这里可能不需要。 回答内容: - 添加输入法:引用[^4]显示如何编译PinyinIME APK。对于用户,可能需要安装APK。 - 设置默认:引用[^3]和[^5]。 引用[^5]:"也可以在shell中使用ime命令",如ime set <input method ID> 具体命令:adb shell ime set com.google.android.inputmethod.pinyin/.PinyinIME 或通过设置def_input_method属性。 对于终端用户,标准方法是: 1. 打开设置 > 系统 > 语言和输入法。 2. 在虚拟键盘下,添加谷歌拼音输入法并启用。 3. 设置默认输入法。 但用户指定了Android 11系统,引用是源码级,所以可能针对开发者。 在回答中,提供两种方式:最终用户方式和开发者方式。 用户说:"添加谷歌中文输入法",在Android中,谷歌中文输入法就是PinyinIME。 步骤: 1. **安装谷歌拼音输入法APK**:可以从Google Play Store下载安装,或者在系统编译时预置。 - 开发者参考:在Android.mk中添加PinyinIME模块(参考引用[^4])。 2. **启用输入法**:在系统设置中启用。 3. **设置默认输入法**: - 通过系统设置界面。 - 或通过修改系统配置:在defaults.xml中添加<string name="def_input_method">com.google.android.inputmethod.pinyin/.PinyinIME</string>(参考引用[^3])。 - 或使用ADB命令:adb shell ime set com.google.android.inputmethod.pinyin/.PinyinIME(参考引用[^5])。 在引用[^5],命令是ime list -s列出,ime set设置。 完整命令:adb shell settings put secure default_input_method com.google.android.inputmethod.pinyin/.PinyinIME 或使用ime命令。 引用[^5]说:"也可以shell进去,通过 trinket:/ # ime list -s",然后ime set。 但ime命令可能已弃用,modern Android使用settings命令。 在回答中,建议使用标准方法。 生成相关问题: </think>### 如何在Android 11系统中添加谷歌中文输入法 谷歌中文输入法(即谷歌拼音输入法,对应包名:`com.google.android.inputmethod.pinyin/.PinyinIME`)是Android系统常用的输入法添加方法取决于您的需求:作为终端用户(通过系统设置)或开发者(通过系统定制或源码修改)。以下基于Android 11系统的特性,结合引用内容,提供清晰的步骤和方法。谷歌中文输入法的核心实现参考了PinyinIME源码,其设计模块化且可扩展[^2]。 #### 方法1: 终端用户添加谷歌中文输入法(简易方式) 如果您是普通用户,只需通过Google Play Store安装应用并配置: 1. **安装输入法APK**: - 打开设备的Google Play Store。 - 搜索“谷歌拼音输入法”并安装。 - 如果无法访问Play Store,可下载官方APK手动安装(需启用“未知来源”权限)。 - 引用[^1]提到模拟器测试的重要性,但此步骤在真机或模拟器上操作相同[^1]。 2. **启用并设置默认输入法**: - 进入系统设置 > 系统 > 语言和输入法 > 虚拟键盘。 - 在“键盘”列表中,启用“谷歌拼音输入法”。 - 返回上级菜单,选择“默认键盘”并设为谷歌拼音输入法。 - 此过程无需编程,适用于大多数Android 11设备。 #### 方法2: 开发者或系统集成者添加(源码或系统级配置) 如果您正在定制ROM、开发应用或使用模拟器,可通过修改系统属性或ADB命令实现。核心步骤基于引用[^3]和[^5]的配置: 1. **添加输入法到系统**: - 确保谷歌拼音输入法APK已编译或预置到系统中。参考引用[^4],在Android源码中编辑`Android.mk`文件添加PinyinIME模块: ```makefile LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := PinyinIME LOCAL_MODULE_CLASS := APPS LOCAL_SRC_FILES := $(LOCAL_MODULE).apk include $(BUILD_PREBUILT) ``` 编译后,输入法将集成到系统映像中[^4]。 - 如果使用现有设备,可通过ADB安装APK:`adb install path/to/PinyinIME.apk`。 2. **设置输入法为系统默认**: - **方式A: 修改系统配置文件** 编辑`frameworks/base/packages/SettingsProvider/res/values/defaults.xml`文件,添加默认输入法属性: ```xml <string name="def_input_method" translatable="false">com.google.android.inputmethod.pinyin/.PinyinIME</string> ``` 此方法在系统编译时生效,确保输入法在首次启动时即为默认[^3]。 - **方式B: 使用ADB命令(无需源码修改)** 连接设备后执行: ```shell adb shell ime enable com.google.android.inputmethod.pinyin/.PinyinIME # 启用输入法 adb shell ime set com.google.android.inputmethod.pinyin/.PinyinIME # 设为默认 ``` 或替换为安全设置命令: ```shell adb shell settings put secure default_input_method com.google.android.inputmethod.pinyin/.PinyinIME ``` 引用[^5]演示了`ime list -s`命令列出输入法,验证设置是否成功[^5]。 #### 注意事项 - **兼容性**:Android 11系统需确保输入法支持API Level 30。引用[^2]指出输入事件处理流程的先进性,确保在Android 11上正常运行[^2]。 - **模拟器测试**:引用[^1]推荐使用Android模拟器测试兼容性,避免真机成本,尤其针对多设备适配[^1]。 - **常见问题**:如果设置失败,检查包名是否正确(必须为`com.google.android.inputmethod.pinyin/.PinyinIME`),或通过`adb shell ime list -a`查看可用输入法。 通过以上方法,您可成功添加设置谷歌中文输入法。对于开发者,源码级配置提供更高灵活性;普通用户则推荐Play Store安装。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值