设置默认输入法和语言

Android源码中默认的有三种输入法:英文,中文,日文。对应的工程代码路径为:
/packages/inputmethods/LatinIME/
/packages/inputmethods/OpenWnn/
/packages/inputmethods/PinyinIME/

在settinglibs中找到 InputMethodAndSubtypeEnablerManager.java 可以查看控制 默认打开语言选项的类

INPUT_METHOD_SUBTYPE_SETTINGS

不同方案可能不成功

方法一:

进入原生语言勾选设置界面:
进入 Language&input-virtual keyboard(虚拟键盘)
-选择一个要用的输入法
-进入设置语言选择界面
-选择语言后退出

或命令打开语言勾选设置:

选择语言 通过activity打开
am start -n com.android.inputmethod.latin/.settings.SettingsActivity

勾选界面 通过activity打开
am start -n com.android.settings/.inputmethod.InputMethodAndSubtypeEnablerActivity
 
勾选界面 通过action打开
am start -a android.settings.INPUT_METHOD_SUBTYPE_SETTINGS

-选择语言后退出

查看 secure库中的enabled_input_methods值:
或 串口中输入以下命令查看

settings get secure enabled_input_methods 

串口命令获取到如下 输入法字符串

com.android.inputmethod.latin/.LatinIME;-486540198;843948332;-921088104:com.hisilicon.android.inputmethod.latin/.LatinIME

其中的数字串就是语言码

以下设置默认输入法的默认语言:
将获取的输入法字符串添加到以下:

  1. frameworksasepackagesSettingsProvider
    esvaluesdefaults.xml

<string name="def_input_methods">com.android.inputmethod.latin/.LatinIME;-486540198;    843948332;-921088104:com.hisilicon.android.inputmethod.latin/.LatinIME
</string>

2.frameworksasepackagesSettingsProvidersrccomandroidproviderssettingsDatabaseHelper.java

private void loadSecureSettings(SQLiteDatabase db) {
......
loadStringSetting(stmt, Settings.Secure.ENABLED_INPUT_METHODS, 
 R.string.def_input_methods);
}

————————————————
版权声明:本文为CSDN博主「热爱小破球的男孩」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_19447521/article/details/105845012

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容