- 获取输入法名称在将输入法内置到系统之前,可以通过手动安装的方式,获取输入法的包名和类名。通过adb安装输入法apk,并使用ime list命令查看输入法包名类名。
adb install baidu_input.apk adb shell ime list -s
划重点:org.fcitx.fcitx5.android/.input.FcitxInputMethodService 等效于org.fcitx.fcitx5.android.input.FcitxInputMethodService。/.可理解为当前应用包名。安卓在处理时会将/.前后的内容拼在一起识别。例如:A/.B 等效于AB。 - 将文件移动到
/media/nayun/3568book/RK3568/rk3568_android11/device/rockchip/rk356x/rk3568_r/preinstall/fcitx5IME
注意,这些目录有不同的效果:
- preinstall : 预置不可卸载apk
- preinstall_del : 预置可卸载apk (恢复出厂设置可恢复)
- preinstall_del_forever : 预置可卸载apk (恢复出厂设置不可恢复)
- 修改frameworks/base/packages/SettingsProvider/res/values/defaults.xml文件的内容。
<string name="def_enable_input_methods" translatable="false">org.fcitx.fcitx5.android/.input.FcitxInputMethodService</string> <string name="def_input_method" translatable="false">org.fcitx.fcitx5.android/.input.FcitxInputMethodService</string>
- 将输入法设置为默认输入法,/media/nayun/3568book/rk3568/rk3568_android11/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java在文件内加入了以下代码:
//Set the default input method //设置默认输入法 loadStringSetting(stmt, Settings.Secure.DEFAULT_INPUT_METHOD,R.string.def_input_method); //Enable the input method //启用该输入法 loadStringSetting(stmt, Settings.Secure.ENABLED_INPUT_METHODS, R.string.def_enable_input_methods);
- 找到权限设置的位置若需要默认权限,请前往/frameworks/base/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java修改DefaultPermissionGrantPolicy的grantDefaultSystemHandlerPermissions方法,加入以下内容:
//授予包权限 grantPermissionsToPackage(pm, "输入法包名", userId, false, true, ALWAYS_LOCATION_PERMISSIONS,STORAGE_PERMISSIONS,PHONE_PERMISSIONS,MICROPHONE_PERMISSIONS,CONTACTS_PERMISSIONS); //输入法包名 替换为实际输入法包名。 //ALWAYS_LOCATION_PERMISSIONS,STORAGE_PERMISSIONS,PHONE_PERMISSIONS,MICROPHONE_PERMISSIONS,CONTACTS_PERMISSIONS 替换为实际所需的权限列表。
- 输入法测试可通过adb命令查看系统默认输入法
adb shell settings get secure default_input_method