第三方输入法导入

开发过程中有时需要导入第三方的输入法,比较多的是注音输入法(台湾)。
这里以某注音输入法为例:
1,预装输入法的apk(略)
2,将输入法预设为中文繁体的默认输入法
3,切换语言时,输入法会随着语言变化(切到繁体使用注音输入法)

以Android 8.0为例:
预设注音输入法为默认输入法:
frameworks\base\core\res\res\values\config.xml
(overlay机制下在overlay\frameworks\base\core\res\res\values\config.xml)
修改config.xml中的字段config_enabled_input_methods和config_default_input_method。
config_enabled_input_methods为输入法数组,每个参数用:隔开。
config_default_input_method为默认输入法。
不同国家和地区的使用不同values来区分。

<string name="config_enabled_input_methods">com.android.inputmethod.pinyin/.PinyinIME:
com.android.inputmethod.latin/.LatinIME:tw.zhuyin/.zhuyinIME</string>
<string name="config_default_input_method">tw.zhuyin/.zhuyinIME</string>

另外,需要在DatabaseHelper中配置预设值:
frameworks\base\packages\SettingsProvider\src\com\android\providers\settings\DatabaseHelper.java的loadSecureSettings方法中

loadStringSetting(stmt, Settings.Secure.ENABLED_INPUT_METHODS,
                    com.android.internal.R.string.config_enabled_input_methods);
loadStringSetting(stmt, Settings.Secure.DEFAULT_INPUT_METHOD,
                    com.android.internal.R.string.config_default_input_method);

这样默认烧机出来,输入法就会随着默认语言的改变而变化。

切换语言的时候输入法跟随:[此方法不是最终方法,请谨慎导入]
frameworks\base\core\java\com\android\internal\inputmethod\InputMethodUtils.java
其中InputMethodListBuilder中的fillImes方法中修改:

public InputMethodListBuilder fillImes(final ArrayList<InputMethodInfo> imis,
	final Context context, final boolean checkDefaultAttribute,
	@Nullable final Locale locale, final boolean checkCountry,
	final String requiredSubtypeMode) {
	
		for (int i = 0; i < imis.size(); ++i) {
			final InputMethodInfo imi = imis.get(i);		
			if(locale.getCountry().equals("TW")
				&&imi.getId().equals("tw.zhuyin/.zhuyinIME")){
					mInputMethodSet.clear();
					mInputMethodSet.add(imi);
			}else{
				if (isSystemImeThatHasSubtypeOf(imi, context, 
					checkDefaultAttribute, locale,checkCountry,
					requiredSubtypeMode)) {
	                	mInputMethodSet.add(imi);
	            }
			}
		}
    	return this;
}

此对策是因为未找到设置国家或地区与对应输入法默认对应关系的地方,如果有朋友知道在更合理的地方修改,望告知,不甚感激。

相关代码:
InputMethodManagerService.java
InputMethodUtils.java
config.xml
DatabaseHelper.java

参考博客:https://blog.csdn.net/nei504293736/article/details/51599733
https://blog.csdn.net/wlwl0071986/article/details/47680807

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 谷歌输入法的词库导入功能可以支持多种格式,包括txt文件。用户可以通过以下步骤将txt文件导入到谷歌输入法的词库中: 1. 首先,在电脑上运行谷歌输入法的设置程序。这个程序通常是在任务栏的输入法图标上右键单击后选择“设置”打开的。 2. 在设置窗口中,找到“词库设置”或“个性化设置”的选项,点击进入。 3. 在词库设置中,会有一个“导入”或“添加词库”的按钮,点击它。 4. 在弹出的文件选择窗口中,找到并选择要导入的txt文件。可以通过搜索或浏览文件夹来找到文件。 5. 选择文件后,点击“确定”等确认按钮导入词库。 导入词库可能需要一些时间,取决于词库的大小和计算机的性能。完成后,导入的词库会自动添加到谷歌输入法的默认词库中,可以在使用输入法时得到自动补全和预测的支持。 需要注意的是,谷歌输入法对词库的要求是每个词汇一行,不同的词汇之间可以用空格或换行符分隔。如果发现导入的词库没有生效,可能是因为词库格式不符合要求,可以尝试重新整理词库并按照规定重新导入。 综上所述,谷歌输入法是支持导入txt文件的,用户可以通过设置界面将自己的词库导入输入法中,提高输入效率。 ### 回答2: 谷歌输入法支持导入词库,但不支持直接导入txt文件。要导入词库,需要将txt文件转换为特定格式的文件后再导入。具体步骤如下: 1. 首先,将txt文件中的词语逐行复制到电子表格软件(如Excel)的一列中。 2. 在电子表格中,将这一列的内容保存为一个新的CSV文件。确保保存时选择逗号分隔的CSV格式。 3. 下一步是打开谷歌输入法设置,选择“高级设置”。 4. 在“用户词库”部分,点击“导入/导出”。 5. 在弹出的窗口中,选择“导入”,然后选择刚刚保存的CSV文件。 6. 点击“确定”完成词库导入。 通过这些步骤,你可以成功将txt文件中的词语导入到谷歌输入法的词库中。需要注意的是,导入的词库应按照特定格式准备,以便谷歌输入法正确识别和导入词语。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值