Android 切换语言输入法也随之改变问题

在Android11中,当切换系统语言时,输入法会重置为默认的系统输入法。文章指出问题在于`InputMethodManagerService.java`中的代码没有允许第三方输入法作为默认设置。删除特定条件检查后,切换语言时可以保持第三方输入法为默认状态。
摘要由CSDN通过智能技术生成

问题:设置默认输入法为第三方输入法,切换语言后输入法变为其他输入法
原因(Android 11):
frameworks/base/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java

    private void resetDefaultImeLocked(Context context) {
        // Do not reset the default (current) IME when it is a 3rd-party IME
        if (mCurMethodId != null && !mMethodMap.get(mCurMethodId).isSystem()) {
            return;
        }
        final List<InputMethodInfo> suitableImes = InputMethodUtils.getDefaultEnabledImes(
                context, mSettings.getEnabledInputMethodListLocked());
        if (suitableImes.isEmpty()) {
            Slog.i(TAG, "No default found");
            return;
        }
        final InputMethodInfo defIm = suitableImes.get(0);
        if (DEBUG) {
            Slog.i(TAG, "Default found, using " + defIm.getId());
        }
        setSelectedInputMethodAndSubtypeLocked(defIm, NOT_A_SUBTYPE_ID, false);
    }

由于切语言后,非系统输入法不会被设置,删除以下代码

if (mCurMethodId != null && !mMethodMap.get(mCurMethodId).isSystem()) {
            return;
        }

https://blog.csdn.net/nei504293736/article/details/51599733(android 切换系统语言,输入法也随之切换)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值