admin管理员组文章数量:1564197
方法一
1:预装对应的输入法,我使用的瑞芯微方案,已经提供了方法,把APK放在对应的目录里就会预装,不具备参考性
可以参考下面的博客:
是在Android7.0上操作的
https://blog.csdn/kris_fei/article/details/69374863?utm_source=itdadao&utm_medium=referral
https://blog.csdn/kris_fei/article/details/81099629
2:frameworks/base/packages/SettingsProvider/res/values/defaults.xml
diff --git a/packages/SettingsProvider/res/values/defaults.xml b/packages/SettingsProvider/res/values/defaults.xml
old mode 100644
new mode 100755
index 1b7e3ac..fd5f630
--- a/packages/SettingsProvider/res/values/defaults.xml
+++ b/packages/SettingsProvider/res/values/defaults.xml
@@ -188,6 +188,9 @@
<!-- default setting for Settings.System.END_BUTTON_BEHAVIOR : END_BUTTON_BEHAVIOR_SLEEP -->
<integer name="def_end_button_behavior">0x2</integer>
+ <string name="def_input_method" translatable="false">com.iflytek.inputmethod/.FlyIME</string>
+ <string name="def_enabled_input_methods" translatable="false">com.iflytek.inputmethod/.FlyIME</string>
+
<!-- should show the screenshot button default -->
<integer name="def_screenshot_button_show">0</integer>
<!-- the store location of screen capture by default-->
3:frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java b/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
old mode 100644
new mode 100755
index d8f3daf..e616be2
--- a/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
@@ -2460,6 +2460,11 @@ class DatabaseHelper extends SQLiteOpenHelper {
loadIntegerSetting(stmt, Settings.Secure.SLEEP_TIMEOUT,
R.integer.def_sleep_timeout);
+ loadStringSetting(stmt, Settings.Secure.DEFAULT_INPUT_METHOD,
+ R.string.def_input_method );
+
+ loadStringSetting(stmt, Settings.Secure.ENABLED_INPUT_METHODS,
+ R.string.def_enabled_input_methods);
/*
* IMPORTANT: Do not add any more upgrade steps here as the global,
* secure, and system settings are no longer stored in a database
4:frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java
diff --git a/services/core/java/com/android/server/InputMethodManagerService.java b/services/core/java/com/android/server/InputMethodManagerService.java
old mode 100644
new mode 100755
index c23757f..38c4c54
--- a/services/core/java/com/android/server/InputMethodManagerService.java
+++ b/services/core/java/com/android/server/InputMethodManagerService.java
@@ -3522,7 +3522,7 @@ public class InputMethodManagerService extends IInputMethodManager.Stub
}
// TODO: The following code should find better place to live.
- if (!resetDefaultEnabledIme) {
+/* if (!resetDefaultEnabledIme) {
boolean enabledImeFound = false;
final List<InputMethodInfo> enabledImes = mSettings.getEnabledInputMethodListLocked();
final int N = enabledImes.size();
@@ -3541,7 +3541,7 @@ public class InputMethodManagerService extends IInputMethodManager.Stub
resetSelectedInputMethodAndSubtypeLocked("");
}
}
-
+*/
if (resetDefaultEnabledIme) {
final ArrayList<InputMethodInfo> defaultEnabledIme =
InputMethodUtils.getDefaultEnabledImes(mContext, mMethodList);
注意
刚开始按照上面几步是弹不出来输入法的,最后是删除了自带的输入法,才能够正常的弹出输入法。
参考
https://blog.csdn/dpppppp/article/details/86539223
https://blog.csdn/kris_fei/article/details/69374863?utm_source=itdadao&utm_medium=referral
https://blog.csdn/kris_fei/article/details/81099629
方法二
1:同方法一要先安装了对应的输入法
2:frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java
diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java
index cebf0a7..015cc10 100755
--- a/services/core/java/com/android/server/policy/PhoneWindowManager.java
+++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java
@@ -253,6 +253,7 @@ import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
+import java.util.Locale;
/**
* WindowManagerPolicy implementation for the Android phone UI. This
@@ -2107,6 +2108,11 @@ public class PhoneWindowManager implements WindowManagerPolicy {
filter.addAction(Intent.ACTION_SHUTDOWN);
context.registerReceiver(mShutdownanimationReceiver, filter);
+ filter = new IntentFilter();
+ filter.addAction(Intent.ACTION_BOOT_COMPLETED);
+ filter.addAction(Intent.ACTION_LOCALE_CHANGED);
+ context.registerReceiver(mChangeInputMethodReceiver, filter);
+
// monitor for system gestures
mSystemGestures = new SystemGesturesPointerEventListener(context,
new SystemGesturesPointerEventListener.Callbacks() {
@@ -6752,7 +6758,6 @@ public class PhoneWindowManager implements WindowManagerPolicy {
}
};
-
BroadcastReceiver mShutdownanimationReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
@@ -6764,6 +6769,29 @@ public class PhoneWindowManager implements WindowManagerPolicy {
}
};
+ // 配置默认输入法
+ BroadcastReceiver mChangeInputMethodReceiver = new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ if (Intent.ACTION_LOCALE_CHANGED.equals(intent.getAction())
+ || Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) {
+
+ Locale locale = context.getResources().getConfiguration().locale;
+ String language = locale.getLanguage();
+ if (language.endsWith("zh")) {
+ Settings.Secure.putString(context.getContentResolver(),
+ Settings.Secure.DEFAULT_INPUT_METHOD,
+ "com.iflytek.inputmethod/.FlyIME");
+ }
+ else {
+ Settings.Secure.putString(context.getContentResolver(),
+ Settings.Secure.DEFAULT_INPUT_METHOD,
+ "com.android.inputmethod.latin/.LatinIME");
+ }
+ }
+ }
+ };
+
private final Runnable mHiddenNavPanic = new Runnable() {
@Override
public void run() {
版权声明:本文标题:RK3326 Android 8.1 修改默认输入法为讯飞输入法——两种方法,推荐第二种(纯代码) 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/xitong/1727478694a1116552.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论