步骤:1. 查看代码,理解调用层次关系。
SIM卡加载完毕,会发送一个handle消息的EVENT_GET_ICC_RECORD_DONE;
会调用DcTracker.java里面的onRecordLoaded()方法,à
createAllApnList(), 该函数会查询数据查询sim的状态信息,如果没有则初始化,有则ContenProvider通知改变,在进入onChange()方法中,
该函数会sendMessage(obtainMessage(DctConstants.EVENT_APN_CHANGED));
à onApnChanged(),此函数调用
int gprsDefaultSIM =getDataConnectionFromSetting();
该函数有这这样一句话:
int mGPRSHideID = mPhone.getContext().getResources().getInteger(com.android.internal.R.integer.def_gprs_data_connection_sim_setting);
由此第一次开机的默认的数据连接在xml定制。
2. 定制。在soul45_wimdata_ng/wprocedures/jrdhz/ isdm_framework-res.plf和soul45-only/soul45_wimdata_ng/wprocedures/jrdhz/plf/isdm_framework-res.plf的文件增加如下代码:
<VAR>
<SIMPLE_VAR>
<SDMID>def_gprs_data_connection_sim_setting</SDMID>
<C_NAME>the gprs data connection simsetting</C_NAME>
<C_TYPE>Byte</C_TYPE>
<ARRAY>NOT_ARRAY</ARRAY>
<METATYPE>Byte,0x00,0x05</METATYPE>
<IS_CUSTO>1</IS_CUSTO>
<FEATURE>providers</FEATURE>
<DESC>The SDM is to control the gprs dataconnection sim setting when power on for the first time and control hide dataconnection for dual sim card;
0x01:Automatic data connection is off and the dataconnection item of SIM1 is hided;
0x02:Automatic data connection is off and the dataconnection item of SIM2 is hided;
0x03:Nothing is changed, default behaviour;
0x04:Same as 0x01, but it will use SIM2 toautomatically active data connection;
0x05:Same as 0x02, but it will use SIM1 toautomatically active data connection;
the default value of the SDM is 0x03</DESC>
<VALUE>0x05</VALUE>
</SIMPLE_VAR>
</VAR>
效果如下: