Android9 更改系統默認輸入法

說明

默認輸入法 QQPinyin。

添加代碼如下

1,添加 PRODUCT_PACKAGES
build/make/target/product/core.mk
PRODUCT_PACKAGES += QQPinyin
2,添加QQPinyin.apk
packages/apps/QQPinyin/QQPinyin.apk
packages/apps/QQPinyin/Android.mk  不用添加庫文件也可以的。

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
# Module name should match apk name to be installed
LOCAL_MODULE := QQPinyin
LOCAL_MODULE_TAGS := optional

LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_PRIVILEGED_MODULE := true

LOCAL_PREBUILT_JNI_LIBS:= \
               @lib/armeabi/libA3AEECD8.so  \
               @lib/armeabi/libAgc_v1.so \
               @lib/armeabi/libETConverter.android.so  \
               @lib/armeabi/libawp.so  \
               @lib/armeabi/libbutterfly.so  \
               @lib/armeabi/libconscrypt_jni.so  \
               @lib/armeabi/libencrypt_v00.so  \
               @lib/armeabi/libsecurity.so  \
               @lib/armeabi/libsogou_speex_nt_v01.so  \
               @lib/armeabi/libsogouupdcore.so  \
               @lib/armeabi/libspeex_nt_v01.so  \
               @lib/armeabi/libvad-lib.so  \
               @lib/armeabi/libweibosdkcore.so


LOCAL_CERTIFICATE := PRESIGNED
#LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS)
#LOCAL_MODULE_PATH := $(TARGET_OUT)/vendor/app
include $(BUILD_PREBUILT)

 3.配置默認值,如果沒需要添加。
frameworks/base/packages/SettingsProvider/res/values/defaults.xml

<string name="default_input_method" translatable="false">com.tencent.qqpinyin/.QQPYInputMethodService</string>
 <string name="enabled_input_methods" translatable="false">com.tencent.qqpinyin/.QQPYInputMethodService</string>

frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java

            loadStringSetting(stmt, Settings.Secure.DEFAULT_INPUT_METHOD,
                    R.string.default_input_method);

            loadStringSetting(stmt, Settings.Secure.ENABLED_INPUT_METHODS,
                    R.string.enabled_input_methods);

4,切換語言使默認輸入法不改變。

--- a/frameworks/base/core/java/com/android/internal/inputmethod/InputMethodUtils.java
+++ b/frameworks/base/core/java/com/android/internal/inputmethod/InputMethodUtils.java
@@ -138,6 +138,11 @@ public class InputMethodUtils {
             final Context context, final boolean checkDefaultAttribute,
             @Nullable final Locale requiredLocale, final boolean checkCountry,
             final String requiredSubtypeMode) {
+
+        if("com.tencent.qqpinyin".equals(imi.getPackageName())){
+            return true;
+        }
+
         if (!isSystemIme(imi)) {
             return false;
         }

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章