开发平台基本信息
芯片: MSM8909
版本: Android 8.1
kernel: msm-3.18
问题描述
Android原生系统默认的输入法只支持英语输入,而经常有客户要求内置其他语言的输入法,比如中文拼音、韩语、法语等等。为了维护固件的统一性,第三方输入法我一般不会编译到内核中,都是后续通过oem镜像或者静默安装内置的;将输入法安装进系统发现第三方输入法不会默认启用,需要到系统设置的输入法中进行启用。
解决方法
--- a/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
+++ b/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
@@ -18,6 +18,7 @@
-->
<resources>
<bool name="def_dim_screen">true</bool>
+ <string name="google_input_method" translatable="false">com.google.android.inputmethod.pinyin/.PinyinIME</string>
<integer name="def_screen_off_timeout">60000</integer>
<integer name="Telpo_screen_never_sleep">2147483646</integer>
<integer name="def_sleep_timeout">-1</integer>
--- a/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
+++ b/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
@@ -2399,6 +2399,9 @@ class DatabaseHelper extends SQLiteOpenHelper {
loadStringSetting(stmt, Settings.Secure.LOCATION_PROVIDERS_ALLOWED,
R.string.def_location_providers_allowed);
+
+ loadStringSetting(stmt, Settings.Secure.ENABLED_INPUT_METHODS,R.string.google_input_method);
+
// Don't do this. The SystemServer will initialize ADB_ENABLED from a
// persistent system property instead.