瑞芯微Rockchip开发者社区
直播中

吕珠峰

9年用户 758经验值
擅长:可编程逻辑
私信 关注
[问答]

怎样将RK3326 Android 8.1的默认输入法改为讯飞输入法呢

有几种方法可以去修改RK3326 Android 8.1的默认输入法呢?
怎样将RK3326 Android 8.1的默认输入法改为讯飞输入法呢?

回帖(1)

h1654155275.5684

2022-2-17 14:02:25
1:输入法,我用芯瑞微方案,已经用过的方法提供了方法的目录里预装

2:框架/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 @@
     
     0x2

+        com.iflytek.inputmethod/.FlyIME
+        com.iflytek.inputmethod/.FlyIME
+
     
     0
     
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 enabledImes = mSettings.getEnabledInputMethodListLocked();
             final int N = enabledImes.size();
@@ -3541,7 +3541,7 @@ public class InputMethodManagerService extends IInputMethodManager.Stub
                 resetSelectedInputMethodAndSubtypeLocked("");
             }
         }
-
+*/
         if (resetDefaultEnabledIme) {
             final ArrayList defaultEnabledIme =
                     InputMethodUtils.getDefaultEnabledImes(mContext, mMethodList);

方法二

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() {
举报

更多回帖

发帖
×
20
完善资料,
赚取积分