如何实现出厂时,输入法默认是勾选的 & 如何修改默认输入法

[如何实现出厂时,输入法默认是勾选的]
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
因为默认enable的输入法都被保存在Settings.Secure.ENABLED_INPUT_METHODS
所以只用修改他的默认值即可.
以默认勾选latin和sogou为例,
修改DatabaseHelper.java (/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java)
1.先定义 private static final String defaultEnableInputMethods = "com.android.inputmethod.latin/.LatinIME:com.sohu.inputmethod.sogou/.SogouIME";
2.在 private void loadSecureSettings(SQLiteDatabase db) {......}中添加如下内容:

 loadSetting(stmt,Settings.Secure.ENABLED_INPUT_METHODS,defaultEnableInputMethods);

如果要添加多个输入法,则defaultEnableInputMethods的定义为多个输入法的id,输入法之间用:隔开.



[如何修改默认输入法]
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
一、适用于Android V4.0之前的版本:
1. 安装需要用的默认输入法(.apk)到system/app
2. 修改文件 frameworks/base/packages/SettingsProvider/res/values/defaults.xml

 <string name="default_input_method" translatable="false">默认输入法 ID</string>

输入法 ID,如 PinyinIME 为:com.android.inputmethod.pinyin/.PinyinIME

二、适用于Android V4.0及之后的 版本:
1. 需要提前将用到的默认输入法(.apk)内置到系统中
2. 修改文件 DatabaseHelper.java (/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java)
请将默认的初始化部分code删除,即将下面的code都删除掉。

 String defaultIME = IMEFeatureOption.DEFAULT_INPUT_METHOD;

 Log.i(TAG, "defaultIME : " + defaultIME);

 if (defaultIME != null) {

     StringBuffer strBuffer = new StringBuffer(defaultIME);

     int lastDotPos = defaultIME.lastIndexOf(".");

     String strInsert = "/";

     strBuffer.insert(lastDotPos, strInsert);

     loadSetting(stmt, Settings.Secure.DEFAULT_INPUT_METHOD,

     strBuffer.toString());

 } else {

         Log.i(TAG, "default IME from IMEFeatureOption is null!!");

 }

然后在删除的后面添加

 //这里修该默认enable的输入法

 loadSetting(stmt,Settings.Secure.ENABLED_INPUT_METHODS,

        "com.google.android.inputmethod.latin/com.android.inputmethod.latin.LatinIME");


 //这里修改默认选中的输入法

 loadSetting(stmt, Settings.Secure.DEFAULT_INPUT_METHOD,

        "com.google.android.inputmethod.latin/com.android.inputmethod.latin.LatinIME");



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值