android 设置默认启动network mode

network mode常见类型
WCDMA preferred : 0
GSM only : 1
WCDMA only : 2
GSM UMTS : 3
CDMA : 4
... (参考RILConstants.java)
是透过AT+ERAT把mode的值丢给modem,让modem设定相应的mode。 假设是TDD手机。那么其network mode的值和WCDMA是相应的。
WCDMA preferred -- TD-SCDMA preferred
WCDMA only -- TD-SCDMA only
这个network mode在第一次开机时会有一个參数来记录默认值,这个參数就是PREFERRED_NETOK_MODE,该參数定义在在RILConstants.java中。

在SettingProvider loading的时候,这个參数的值就写到Settings.Global.PREFERRED_NETWOK_MODE其中(參考SettingsProvider中的DatabasHelper.java)。然后在make default phone的时候就依据Settings.Global.PREFERRED_NETWOK_MODE取出来的值来使用。
 
注:由于network mode是End user能够通过操作setting菜单切换的,所以本FAQ仅仅是改动download完第一次开机的network mode默认值
 
AP端改动例如以下:
有了上述的描写叙述,设定默认的network mode比較简单,就是把PREFERRED_NETWORK_MODE的默认取值改动掉就可以。眼下PREFERRED_NETOK_MODE默认值是NETWORK_MODE_WCDMA_PREF。
比如默认设成GSM only:


RILConstants.java 路径: alps/framework/base/telephony/java/com/android/internal/telephony/
 
Modem端改动例如以下:
modem端改动preferred rat相应的nvram 是NVRAM_EF_RAC_PREFERENCE_LID
请帮忙依据须要改动相关default数组COMMON_NVRAM_EF_RAC_PREFERENCE_DEFAULT的IR preferred RAT(红色highlight部分):
/* 4th byte is IR preferred RAT and MM preferred RAT */
// MM preferred RAT 0x00 : RAT_NONE 0x01 : RAT_GSM 0x02 : RAT_UMTS 
0x00
+
// IR preferred RAT 0x00 : RAT_NONE 0x10 : RAT_GSM 0x20 : RAT_UMTS 
0x20 //