环境
系统:Android 13
芯片厂商:展锐
简介
在安卓系统中,通常会有一个默认输入法。
常见的安卓默认输入法
- Gboard(谷歌键盘):很多安卓手机厂商会将其作为默认输入法之一。它功能丰富,支持多种语言输入,具有智能预测、滑动输入等功能。
- 厂商定制输入法:各大手机厂商也可能会推出自己定制的输入法,如小米的搜狗输入法小米版、华为的百度输入法华为版等。这些输入法通常会针对自家手机的系统进行优化,以提供更好的用户体验。
需求
默认只有英文输入法,没有中文,需要中文输入法,且可以卸载的。
实测为搜狗输入法,百度等其它输入法也同样适用。
实现
在SDK目录中创建packages/apps/SogouIME
从网上下载搜狗的apk重命名为SogouIME.apk放到SogouIME文件夹中。
- 创建Android.mk
注意有2个关键行
LOCAL_ENFORCE_USES_LIBRARIES := false 不加这个在安卓13中会编译不过
LOCAL_MODULE_PATH := $(TARGET_OUT)/vital-app 这行代码安装到/system/vital-app中,实现展锐的内置APP可卸载(恢复出厂可恢复)
整个mk内容如下
###############################################################################
# SogouIME
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := SogouIME
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_TAGS := optional
LOCAL_BUILT_MODULE_STEM := package.apk
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_ENFORCE_USES_LIBRARIES := false
LOCAL_MODULE_PATH := $(TARGET_OUT)/vital-app
LOCAL_PREBUILT_JNI_LIBS := \
@lib/armeabi/libac_checker.so \
@lib/armeabi/libaffinity.so \
@lib/armeabi/libawp.so \
@lib/armeabi/libcrash_collect.so \
@lib/armeabi/libc++_shared.so \
@lib/armeabi/libCtaApiLib.so \
@lib/armeabi/libframesequence_doutu.so \
@lib/armeabi/libframesequence.so \
@lib/armeabi/libkoom-java.so \
@lib/armeabi/libkwai-linker.so \
@lib/armeabi/liblogan.so \
@lib/armeabi/libluajava.so \
@lib/armeabi/libmarsxlog.so \
@lib/armeabi/libmmkv.so \
@lib/armeabi/libnative-sec.so \
@lib/armeabi/libopus_v1.so \
@lib/armeabi/libostar.so \
@lib/armeabi/libqmp.so \
@lib/armeabi/libSGMtlgShell.so \
@lib/armeabi/libsimple_vad.so \
@lib/armeabi/libsimplevadwrapper.so \
@lib/armeabi/libSogouAgc_v1.so \
@lib/armeabi/libsogou_speex_nt_v01.so \
@lib/armeabi/libsogouupdcore.so \
@lib/armeabi/libtgpalite.so \
@lib/armeabi/libtrace-canary.so \
@lib/armeabi/libvivo_account_wave.so \
@lib/armeabi/libweibosdkcore.so \
@lib/armeabi/libwind.so \
@lib/armeabi/libxgVipSecurity.so \
@lib/armeabi/libxhook_lib.so
include $(BUILD_PREBUILT)
- 去掉LatinIME英文输入法,加上SogouIME
diff --git a/build/make/target/product/handheld_product.mk b/build/make/target/product/handheld_product.mk
index 2199c570a01..ae70564f858 100644
--- a/build/make/target/product/handheld_product.mk
+++ b/build/make/target/product/handheld_product.mk
@@ -28,13 +28,14 @@ PRODUCT_PACKAGES += \
Contacts \
DeskClock \
Gallery2 \
- LatinIME \
Music \
OneTimeInitializer \
preinstalled-packages-platform-handheld-product.xml \
QuickSearchBox \
SettingsIntelligence \
- frameworks-base-overlays
+ frameworks-base-overlays \
+ SogouIME
+
PRODUCT_PACKAGES_DEBUG += \
frameworks-base-overlays-debug
- 设置默认输入法
如果要改成百度输入法,可以把里面的默认百度输入法的2行配置注释去掉,把搜狗的删除就行.
diff --git a/frameworks/base/packages/SettingsProvider/res/values/defaults.xml b/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
index 9b688fe1c66..96c047b5577 100755
--- a/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
+++ b/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
@@ -346,4 +346,10 @@
<integer name="def_vibrate_settings">0</integer>
<!--Hxy:add by yangsong fot set defaultvalues of three pointer screenshot :0默认打开,1默认关闭 at 20230225-->
<integer name="def_three_pointer_screenshot">1</integer>
+ <!-- 默认百度输入法 -->
+ <!-- <string name="config_default_input_method" translatable="false">com.baidu.input_benewtech/com.baidu.input.ImeService</string>
+ <string name="def_enabled_input_methods" translatable="false">com.baidu.input_benewtech/com.baidu.input.ImeService</string> -->
+ <!-- 默认搜狗输入法 -->
+ <string name="config_default_input_method" translatable="false">com.sohu.inputmethod.sogou/.SogouIME</string>
+ <string name="def_enabled_input_methods" translatable="false">com.sohu.inputmethod.sogou/.SogouIME</string>
</resources>
diff --git a/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java b/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
index 7eab15f4bd1..7e5989ba259 100644
--- a/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
+++ b/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
@@ -2479,7 +2479,9 @@ class DatabaseHelper extends SQLiteOpenHelper {
loadIntegerSetting(stmt, UnisocSettings.Secure.THREE_POINTER_SCREENSHOT,
R.integer.def_three_pointer_screenshot);
///&&}}
-
+
+ loadStringSetting(stmt, Settings.Secure.DEFAULT_INPUT_METHOD, R.string.config_default_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,
这样编译后烧录,设备中就有中文输入法了.
安卓输入法
安卓输入法是用于在安卓设备上输入文字的工具,它具有多种功能和特点,以下为你详细介绍:
主流输入法推荐
- 搜狗输入法:在 PC 端积累了大量用户,词库丰富,智能联想功能强大,能通过输入开头字母直接联想出词汇,提高打字效率。还提供丰富的表情包和皮肤资源,满足个性化需求。
- 百度输入法:以强大的语音 AI 能力和搜索技术著称,语音输入识别精准度高,支持多种方言输入。在网络流行语和表情包方面表现出色,适合年轻用户。
- 讯飞输入法:凭借出色的语音识别技术脱颖而出,语音转换文字几乎没有停滞,支持多种地方方言,甚至能将粤语实时转换成普通话。具备面对面翻译和快捷翻译功能,方便多语言交流。
- Gboard(谷歌键盘):谷歌自家的输入法,简洁易用,界面设计清新。支持滑动输入,提高输入效率,支持多语言输入,适应国际化用户需求,对实体键盘用户也有细致优化。
- 小企鹅输入法:以开源著称,具有高度的可定制性,用户可根据需求调整键盘布局、设置快捷键等。注重基础体验,适合追求极简风格的用户。
作者:帅得不敢出门 csdn原创谢绝任何形式的转载及收录