触觉智能分享-RK3568 Android11修改默认输入法

前言

RK3568 Android11平台自带Android英文输入法,本文基于IDO-EVB3568平台,以百度输入法为例,介绍安装和内置第三方输入法的方法。

我司基于RK3568开发的工控主板,四核A55 2.0G 主频,支持高达8GB高速LPDDR4,1T算力NPU ,4K H.265硬解码,4K HDMI2.0显示输出,支持双通道LVDS/eDP/两路MIPI DSI 等多种显示接口,支持3屏异显。板载2路千兆以太网,双频WIFI+蓝牙,支持5G或4G通信,支持2路USB3.0和7路USB2.0/SATA3.0,5路串口(UART/RS232/RS485),2路CAN总线。支持Android11/Debian10/Ubuntu20/Buildroot/麒麟OS/开源鸿蒙等多种操作系统。

 

一、获取输入法名称

在将输入法内置到系统之前,可以通过手动安装的方式,获取输入法的包名和类名。

通过adb安装输入法apk,并使用ime list命令查看输入法包名类名

> adb install baidu_input.apk
> adb shell ime list -s
com.android.inputmethod.latin/.LatinIME
com.baidu.input/.ImeService

二、输入法预安装

将输入法apk文件添加至 device/rockchip/rk356x/rk3568_r/preinstall_del/ 目录下,编译后该APK文件将会预安装至系统。

三、环境变量修改

添加环境变量def_input_method,指定变量值为输入法的包名和类名。修改内容如下

--- a/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
+++ b/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
@@ -246,4 +246,7 @@

     <!-- should show the screenshot button default -->
     <integer name="def_screenshot_button_show">0</integer>
+
+     <!-- set default input method-->
+     <string name="def_input_method" translatable="false">com.baidu.input/.ImeService</string>
 </resources>

四、设置默认输入法

在设置源码中,指定DEFAULT_INPUT_METHOD为要设置的输入法。修改内容如下

--- a/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
+++ b/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
@@ -2319,6 +2319,9 @@ class DatabaseHelper extends SQLiteOpenHelper {
         try {
             stmt = db.compileStatement("INSERT OR IGNORE INTO secure(name,value)"
                     + " VALUES(?,?);");
+
+           loadStringSetting(stmt, Settings.Secure.DEFAULT_INPUT_METHOD,
+                    R.string.def_input_method);

             // Don't do this.  The SystemServer will initialize ADB_ENABLED from a
             // persistent system property instead.

五、给输入法添加默认权限

输入法一般需要定位、存储等权限,可通过预先设置输入法默认的权限,避免输入法启动时弹出权限申请确认弹窗。修改内容如下

--- a/frameworks/base/services/--- a/frameworks/base/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java
+++ b/frameworks/base/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java
@@ -527,6 +527,9 @@ public final class DefaultPermissionGrantPolicy {
         String[] calendarSyncAdapterPackages = (syncAdapterPackagesProvider != null) ?
                 syncAdapterPackagesProvider.getPackages(CalendarContract.AUTHORITY, userId) : null;

+       // baidu input
+        grantPermissionsToPackage(pm, "com.baidu.input", userId, false, true, ALWAYS_LOCATION_PERMISSIONS,STORAGE_PERMISSIONS,PHONE_PERMISSIONS,MICROPHONE_PERMISSIONS,CONTACTS_PERMISSIONS);
+
         // Installer
         grantSystemFixedPermissionsToSystemPackage(pm,
                 ArrayUtils.firstOrNull(getKnownPackages(

六、输入法测试

可通过adb命令查看系统默认输入法

> adb shell settings get secure default_input_method

经过以上步骤的系统修改,点击系统桌面上的编辑框,默认调用的输入法将会变更为修改后的输入法。

 

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Industio_触觉智能

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值