android设置默认输入法

 <string name="config_default_input_method" translatable="false">
  com.android.inputmethod.pinyin/.PinyinIME</string> 

方法一:
        修改文件如下:
               frameworks\base\packages\SettingsProvider\res\values\defaults.xml 
               frameworks\base\packages\SettingsProvider\src\com\android\providers\settings\DatabaseHelper.java 
  
        一些系统定制信息是通过  frameworks/base/package/settingsproviders/res/values/defaults.xml 来预设的,
        在系统首次启动时加载此文件,并应用文件中的设置。文件如下: 

        例子: 设置默认输入法为google拼音 
           M    frameworks\base\packages\SettingsProvider\res\values\defaults.xml           
 <string name="config_default_input_method" translatable="false">
  com.android.inputmethod.pinyin/.PinyinIME</string> 

   frameworks\base\packages\SettingsProvider\src\com\android\providers\settings\DatabaseHelper.java
                   在loadSecureSettings()中增加一条语句,制定默认使能的输入法             
loadStringSetting(stmt, Settings.Secure.ENABLED_INPUT_METHODS, 
                      R.string.config_default_input_method ); 

方法二:
           修改文件如下:
                   frameworks\base\core\res\res\values\config.xml 
                   frameworks\base\services\java\com\android\server \InputMethodManagerService.java

           在 frameworks\base\core\res\res\values\config.xml 添加一个属性:      

 <string name="config_default_input_method" translatable="false">
  com.android.inputmethod.pinyin/.PinyinIME</string> 

 frameworks\base\services\java\com\android\server\InputMethodManagerService.java  的方法 buildInputMethodListLocked() 里添加:     
   String defaultIme = Settings.Secure.getString(mContext 
                .getContentResolver(), Settings.Secure.DEFAULT_INPUT_METHOD); 

        if ( defaultIme == null ) 
        { 
            final Resources res = mContext.getResources(); 
            try 
            { 
                //frameworks\base\core\res\res\values\config.xml 
                String myIME = res.getString( com.android.internal.R.string.config_default_input_method ); 
                if ( myIME != null && myIME.length() > 0 ) 
                { 
                    Settings.Secure.putString( mContext.getContentResolver(), 
                            Settings.Secure.DEFAULT_INPUT_METHOD, 
                            myIME ); 
                } 
            } 
            catch ( Exception e ) 
            { 
            } 
        } 

android 设置默认切换键盘

在android中,系统默认输入键盘是US,但是不同国家有不同的常用输入键盘,US 一般普遍常用,因此将US 和 常用输入键盘设定为默认的键盘切换。(以Russia为例)

1)在frameworks/base/packages/SettingsProvider/res/values/defaults.xml 中添加:

    <string name="def_input_method" translatable="false">com.android.inputmethod.latin/.LatinIME;1983547218;-921088104</string>

com.android.inputmethod.latin/.LatinIME — 系统最初默认值

-921088104 — US 键盘输入 id

1983547218 — Russia 键盘输入 id

id 值可能还可以通过别的获取方式指定,还没找到更好的方法,只能笨拙地实现基本功能先。

不同输入键盘的 id 值可以在/packages/apps/Settings/src/com/android/settings/inputmethod/InputMethodAndSubtypeUtil.java中获取,updateSubtypesPreferenceChecked方法中bhashCode = String.valueOf(subtype.hashCode()) 可读取到 id。


2)在 frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java 中添加:

            loadStringSetting(stmt, Settings.Secure.LOCATION_PROVIDERS_ALLOWED,

                    R.string.def_location_providers_allowed);


            loadStringSetting(stmt, Settings.Secure.ENABLED_INPUT_METHODS,

                    R.string.def_input_method);// default input method

    

            loadBooleanSetting(stmt, Settings.Secure.ASSISTED_GPS_ENABLED,

                    R.bool.assisted_gps_enabled);




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值