默认配置搜狗输入法

第一步:先预装搜狗输入法app

第二步:	上代码

frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java

--- 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.sohu.inputmethod.sogou/.SogouIME");
+				 }
+				 else {
+					Settings.Secure.putString(context.getContentResolver(), 
+											Settings.Secure.DEFAULT_INPUT_METHOD,
+											"com.android.inputmethod.latin/.LatinIME");
+				}
+			}
+        }
+    };
+

注:Android常见输入法及包名
百度:com.baidu.input/.ImeService
讯飞:com.iflytek.inputmethod/.FlyIME
腾讯:com.tencent.qqpinyin/.QQPYInputMethodService
谷歌:com.google.android.inputmethod.pinyin/.PinyinIME
搜狗:com.sohu.inputmethod.sogou/.SogouIME
触宝:com.cootek.smartinput5/.TouchPalIME
Android: com.android.inputmethod.latin/.LatinIME

技术交流群
在这里插入图片描述

### 解决没有 xstartup 的问题 若没有 `xstartup` 文件,可手动创建该文件。首先,在用户主目录下创建 `.vnc` 目录(若该目录不存在),接着在该目录下创建 `xstartup` 文件。以下是操作命令: ```bash mkdir -p ~/.vnc touch ~/.vnc/xstartup ``` 创建好文件后,可向其中添加必要的配置内容。若希望在 VNC 会话中启动完整桌面环境,可参考如下示例内容: ```bash #!/bin/sh # Uncomment the following two lines for normal desktop: unset SESSION_MANAGER exec /etc/X11/xinit/xinitrc [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources xsetroot -solid grey vncconfig -iconic & x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" & x-window-manager & ``` 完成内容添加后,还需为 `xstartup` 文件赋予执行权限: ```bash chmod +x ~/.vnc/xstartup ``` ### 将系统修改为默认使用搜狗输入法 以下是在 Linux 系统(以常见的 Ubuntu 为例)将系统修改为默认使用搜狗输入法的步骤: 1. **安装搜狗输入法** - 首先添加搜狗输入法的源,然后更新软件包列表: ```bash wget https://ime.sogoucdn.com/dl/index/1624672273/sogoupinyin_4.2.1.1069_amd64.deb sudo dpkg -i sogoupinyin_4.2.1.1069_amd64.deb sudo apt-get install -f ``` 2. **配置输入法** - 打开系统设置,找到“区域与语言”选项。 - 在“输入源”中添加搜狗输入法。 - 设置搜狗输入法默认输入法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值