android4.2 添加其他默认输入法

Android4.2自带有输入法,有很多客户都要求内置指定的输入法。

要想添加输入法,并指定成默认输入法,修改方法和Android4.0不一样了。

Android 4.2 中虽然定义了Settings.Secure.DEFAULT_INPUT_METHOD,但没有地方赋值。

在InputMethodManagerService.java (frameworks\base\services\java\com\android\server) 文件中InputMethodManagerService函数中,可以发现,如果没有默认输入法,就会执行

final String defaultImiId = mSettings.getSelectedInputMethod();
 mImeSelectedOnBoot = !TextUtils.isEmpty(defaultImiId);

buildInputMethodListLocked(mMethodList, mMethodMap);
        mSettings.enableAllIMEsIfThereIsNoEnabledIME();

        if (!mImeSelectedOnBoot) {
            Slog.w(TAG, "No IME selected. Choose the most applicable IME.");
            resetDefaultImeLocked(context);//
        }

--------------->getMostApplicableDefaultIMELocked()

 在system/app/目录下找激活的输入法

 

下面提供一个修改方法:
在\frameworks\base\packages\SettingsProvider\src\com\android\providers\settings\DatabaseHelper.java中的
loadSecureSettings(SQLiteDatabase db)函数中添加
 

loadStringSetting(stmt, Settings.Secure.DEFAULT_INPUT_METHOD ,

                    R.string.def_input_methods);

 

\frameworks\base\packages\SettingsProvider\res\values\defaults.xml中添加

<string name="def_input_methods" translatable="false">com.sohu.inputmethod.sogou/.SogouIME</string>

其中com.sohu.inputmethod.sogou/.SogouIME

输入法的apk的service全名(package="com.sohu.inputmethod.sogou"  ,service  android:name=".SogouIME")这些可以反编译apk中的AndroidManifest.xml 得到。

 

如果不是添加输入法,只是修改def_input_methods" translatable的值就可是指定默认输入法

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值