本参考设计主要思路和关键点如点:
1) 为不同operator的SIM卡准备WAP/MMS profile data
为尽量少改动代码,不需新增数据结构,可延用WAP,MMS,DATA ACCOUNT对应的NVRAM,主要有以下三方面:
1.1 Browser
COMMON_NVRAM_EF_WAP_PROF_WAP_PROFILE_CONTENT_DEFAULT
Browser profile content(包括SIM1和SIM2的browser profile content)
COMMON_NVRAM_EF_WAP_PROF_WAP_SIM1_PROFILE_NAMES_DEFAULT
SIM1 Browser profile name
COMMON_NVRAM_EF_WAP_PROF_WAP_SIM2_PROFILE_NAMES_DEFAULT
SIM2 Browser profile name
1.2MMS
COMMON_NVRAM_EF_WAP_PROF_MMS_PROFILE_CONTENT_DEFAULT
MMS profile content(包括SIM1和SIM2的MMS profile content)
COMMON_NVRAM_EF_WAP_PROF_MMS_SIM1_PROFILE_NAMES_DEFAULT
SIM1 MMS profile name
COMMON_NVRAM_EF_WAP_PROF_MMS_SIM2_PROFILE_NAMES_DEFAULT
SIM2 MMS profile name
1.3Data account
COMMON_NVRAM_EF_ABM_PS_PROFILE_DEFAULT
GPRS data account content
COMMON_NVRAM_EF_CSD_PROFILE_DEFAULT
CSD data account content
2)开机后,mmi_wap_prof_init用于初始化WAP/MMS profile
2.1原有设计是:
2.1.1Browser部分:
mmi_wap_prof_nvram_read_active_profile_index(MMI_WAP_PROF_APPID_BRW);
从nvram中获取并设置SIM1和SIM2的active profile index
mmi_wap_prof_initialize_data(MMI_WAP_PROF_SIMID_SIM1, MMI_WAP_PROF_APPID_BRW);
根据SIM1 active profile index设置SIM1的profile content
mmi_wap_prof_initialize_data(MMI_WAP_PROF_SIMID_SIM2, MMI_WAP_PROF_APPID_BRW);
根据SIM2 active profile index设置SIM2的profile content
2.1.2 MMS部分:
mmi_wap_prof_nvram_read_active_profile_index(MMI_WAP_PROF_APPID_MMS);
从nvram中获取并设置SIM1和SIM2的active profile index
mmi_wap_prof_initialize_data(MMI_WAP_PROF_SIMID_SIM1, MMI_WAP_PROF_APPID_MMS);
根据SIM1 active profile
mmi_wap_prof_initialize_data(MMI_WAP_PROF_SIMID_SIM2, MMI_WAP_PROF_APPID_MMS);-
根据SIM2 active profile index设置SIM2的profile content
2.2 需要修改的是:
只需要修改函数mmi_wap_prof_nvram_read_active_profile_index(),将函数中从nvram获取SIM卡active profile
index的操作修改为:
2.2.1 先通过SIMModule获取当前SIM卡的MCC和MNC.
2.2.2 根据第一步结果,找出该SIM卡对应的profile index(对应关系在预置WAP/MMS/data account的nvram数据时已经由客户自行设定).
2.2.3 用新获取的profile index替换原代码中从nvram获取的profile index即可,除此之外不需作其它修改。
【注】函数mmi_wap_prof_nvram_read_active_profile_index()中,变量index为从nvram中读出的sim1和sim2 active prile index,其第一个字节对应SIM1的profile index,第二个字节对应SIM2的profile index。即:SIM1_index=((index) & 0x00FF); SIM2_index= ((index) >> 8)。
1) 为不同operator的SIM卡准备WAP/MMS profile data
为尽量少改动代码,不需新增数据结构,可延用WAP,MMS,DATA ACCOUNT对应的NVRAM,主要有以下三方面:
1.1 Browser
COMMON_NVRAM_EF_WAP_PROF_WAP_PROFILE_CONTENT_DEFAULT
Browser profile content(包括SIM1和SIM2的browser profile content)
COMMON_NVRAM_EF_WAP_PROF_WAP_SIM1_PROFILE_NAMES_DEFAULT
SIM1 Browser profile name
COMMON_NVRAM_EF_WAP_PROF_WAP_SIM2_PROFILE_NAMES_DEFAULT
SIM2 Browser profile name
1.2MMS
COMMON_NVRAM_EF_WAP_PROF_MMS_PROFILE_CONTENT_DEFAULT
MMS profile content(包括SIM1和SIM2的MMS profile content)
COMMON_NVRAM_EF_WAP_PROF_MMS_SIM1_PROFILE_NAMES_DEFAULT
SIM1 MMS profile name
COMMON_NVRAM_EF_WAP_PROF_MMS_SIM2_PROFILE_NAMES_DEFAULT
SIM2 MMS profile name
1.3Data account
COMMON_NVRAM_EF_ABM_PS_PROFILE_DEFAULT
GPRS data account content
COMMON_NVRAM_EF_CSD_PROFILE_DEFAULT
CSD data account content
2)开机后,mmi_wap_prof_init用于初始化WAP/MMS profile
2.1原有设计是:
2.1.1Browser部分:
mmi_wap_prof_nvram_read_active_profile_index(MMI_WAP_PROF_APPID_BRW);
从nvram中获取并设置SIM1和SIM2的active profile index
mmi_wap_prof_initialize_data(MMI_WAP_PROF_SIMID_SIM1, MMI_WAP_PROF_APPID_BRW);
根据SIM1 active profile index设置SIM1的profile content
mmi_wap_prof_initialize_data(MMI_WAP_PROF_SIMID_SIM2, MMI_WAP_PROF_APPID_BRW);
根据SIM2 active profile index设置SIM2的profile content
2.1.2 MMS部分:
mmi_wap_prof_nvram_read_active_profile_index(MMI_WAP_PROF_APPID_MMS);
从nvram中获取并设置SIM1和SIM2的active profile index
mmi_wap_prof_initialize_data(MMI_WAP_PROF_SIMID_SIM1, MMI_WAP_PROF_APPID_MMS);
根据SIM1 active profile
mmi_wap_prof_initialize_data(MMI_WAP_PROF_SIMID_SIM2, MMI_WAP_PROF_APPID_MMS);-
根据SIM2 active profile index设置SIM2的profile content
2.2 需要修改的是:
只需要修改函数mmi_wap_prof_nvram_read_active_profile_index(),将函数中从nvram获取SIM卡active profile
index的操作修改为:
2.2.1 先通过SIMModule获取当前SIM卡的MCC和MNC.
2.2.2 根据第一步结果,找出该SIM卡对应的profile index(对应关系在预置WAP/MMS/data account的nvram数据时已经由客户自行设定).
2.2.3 用新获取的profile index替换原代码中从nvram获取的profile index即可,除此之外不需作其它修改。
【注】函数mmi_wap_prof_nvram_read_active_profile_index()中,变量index为从nvram中读出的sim1和sim2 active prile index,其第一个字节对应SIM1的profile index,第二个字节对应SIM2的profile index。即:SIM1_index=((index) & 0x00FF); SIM2_index= ((index) >> 8)。