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 //