MT6260M无法联网哪里出问题了?
static U32 CB_GPRS_get_account()
{
cbm_app_info_struct app_info;
U8 app_id;
U32 ret;
app_info.app_icon_id = 0;
app_info.app_str_id = 0;
app_info.app_type = 0x0800;
cbm_register_app_id_with_app_info(&app_info, &app_id);
CB_DEBUG_TRACE("[CB_GPRS_get_account]app_id=%d", app_id );
ret = cbm_encode_data_account_id(CBM_DEFAULT_ACCT_ID,(cbm_SIM_id_enum)0,app_id,(kal_bool)0);
if (ret == CBM_INVALID_ACCT_ID)
{
CB_DEBUG_TRACE("[CB_GPRS_get_account]ret=%d, CBM_INVALID_ACCT_ID", ret );
}
else
{
CB_DEBUG_TRACE("[CB_GPRS_get_account]ret=%d", ret );
}
cbm_deregister_app_id(app_id);
return ret;
}
=======================================================
打印的结果是
[00:01:35][CB_GPRS_get_account]app_id=1
[00:01:35][CB_GPRS_get_account]ret=16793140
[00:01:35][CB_socketCreate]socket=f00eedf4, socketID=-1
如果我没有记错的话, 50 60 cbm_sim_id_enum 这个sim卡的枚举值不同,看下代码。
/* sim id */
typedef enum
{
CBM_SIM_ID_SIM1, /* sim card one */
CBM_SIM_ID_SIM2, /* sim card two */
CBM_SIM_ID_SIM3, /* sim card there */
CBM_SIM_ID_SIM4, /* sim card four */
CBM_SIM_ID_TOTAL /* total sim card number */
} cbm_sim_id_enum;
奇怪的是,50可以联网,60不行。
我是要你把50和60的对比一下,一个是从0开始的,一个是从1开始的,你要改一下试试
进来学习了
现在改为从 g_srv_dtcnt_store_ctx 中取值了,但 g_srv_dtcnt_store_ctx 为空的,上了一下第三方的浏览器,g_srv_dtcnt_store_ctx 就有信息了。
U32 in_sys_FindAccProfIdByApn(const char* apn, cbm_sim_id_enum sim)
{
extern srv_dtcnt_store_info_context g_srv_dtcnt_store_ctx;
int i;
S8 strapn[20] = {0};
strcpy((S8*)strapn, (S8*)apn);
CB_DEBUG_TRACE("[in_sys_FindAccProfIdByApn]dest_name=%s, sim=%d", strapn, sim);
for(i = 0; i < SRV_DTCNT_PROF_MAX_ACCOUNT_NUM; ++i)
{
CB_DEBUG_TRACE("[in_sys_FindAccProfIdByApn] i=%d, strapn=%s, acc_id=%d, sim_info=%d, acc_type=%d, in_use=%d, bearer_type=%d",
i,
g_srv_dtcnt_store_ctx.acc_list[i].dest_name,
g_srv_dtcnt_store_ctx.acc_list[i].acc_id,
g_srv_dtcnt_store_ctx.acc_list[i].sim_info,
g_srv_dtcnt_store_ctx.acc_list[i].acc_type,
g_srv_dtcnt_store_ctx.acc_list[i].in_use,
g_srv_dtcnt_store_ctx.acc_list[i].bearer_type);
if(g_srv_dtcnt_store_ctx.acc_list[i].in_use &&
g_srv_dtcnt_store_ctx.acc_list[i].bearer_type == SRV_DTCNT_BEARER_GPRS &&
/*g_srv_dtcnt_store_ctx.acc_list[i].sim_info == (sim + 1) &&*/
app_stricmp((char*)g_srv_dtcnt_store_ctx.acc_list[i].dest_name, (char*)apn) == 0)
{
#if DEBUG_MODE // for test
CB_DEBUG_TRACE("[in_sys_FindAccProfIdByApn]find acc_id=%d", g_srv_dtcnt_store_ctx.acc_list[i].acc_id);
#else
return g_srv_dtcnt_store_ctx.acc_list[i].acc_id;
#endif
}
}
return CBM_INVALID_ACCT_ID;
}
======================
打印结果:
[00:00:28][in_sys_FindAccProfIdByApn]dest_name=uniwap, sim=1
[00:00:28][in_sys_FindAccProfIdByApn] i=0, strapn=, acc_id=0, sim_info=0, acc_type=0, in_use=0, bearer_type=0
[00:00:28][in_sys_FindAccProfIdByApn] i=1, strapn=, acc_id=0, sim_info=0, acc_type=0, in_use=0, bearer_type=0
[00:00:28][in_sys_FindAccProfIdByApn] i=2, strapn=, acc_id=0, sim_info=0, acc_type=0, in_use=0, bearer_type=0
[00:00:28][in_sys_FindAccProfIdByApn] i=3, strapn=, acc_id=0, sim_info=0, acc_type=0, in_use=0, bearer_type=0
[00:00:28][in_sys_FindAccProfIdByApn] i=4, strapn=, acc_id=0, sim_info=0, acc_type=0, in_use=0, bearer_type=0
[00:00:28][in_sys_FindAccProfIdByApn] i=5, strapn=, acc_id=0, sim_info=0, acc_type=0, in_use=0, bearer_type=0
[00:00:28][in_sys_FindAccProfIdByApn] i=6, strapn=, acc_id=0, sim_info=0, acc_type=0, in_use=0, bearer_type=0
[00:00:28][in_sys_FindAccProfIdByApn] i=7, strapn=, acc_id=0, sim_info=0, acc_type=0, in_use=0, bearer_type=0
[00:00:28][in_sys_FindAccProfIdByApn] i=8, strapn=, acc_id=0, sim_info=0, acc_type=0, in_use=0, bearer_type=0
[00:00:28][in_sys_FindAccProfIdByApn] i=9, strapn=, acc_id=0, sim_info=0, acc_type=0, in_use=0, bearer_type=0
******************************************************
******************************************************
用第三方浏览器上一下网后:
[00:08:04][in_sys_FindAccProfIdByApn]dest_name=uniwap, sim=1
[00:08:04][in_sys_FindAccProfIdByApn] i=0, strapn=uniwap, acc_id=0, sim_info=1, acc_type=0, in_use=1, bearer_type=2
[00:08:04][in_sys_FindAccProfIdByApn]find acc_id=0
[00:08:04][in_sys_FindAccProfIdByApn] i=1, strapn=, acc_id=0, sim_info=0, acc_type=0, in_use=0, bearer_type=0
[00:08:04][in_sys_FindAccProfIdByApn] i=2, strapn=, acc_id=0, sim_info=0, acc_type=0, in_use=0, bearer_type=0
[00:08:04][in_sys_FindAccProfIdByApn] i=3, strapn=, acc_id=0, sim_info=0, acc_type=0, in_use=0, bearer_type=0
[00:08:04][in_sys_FindAccProfIdByApn] i=4, strapn=, acc_id=0, sim_info=0, acc_type=0, in_use=0, bearer_type=0
[00:08:04][in_sys_FindAccProfIdByApn] i=5, strapn=, acc_id=0, sim_info=0, acc_type=0, in_use=0, bearer_type=0
[00:08:04][in_sys_FindAccProfIdByApn] i=6, strapn=, acc_id=0, sim_info=0, acc_type=0, in_use=0, bearer_type=0
[00:08:04][in_sys_FindAccProfIdByApn] i=7, strapn=, acc_id=0, sim_info=0, acc_type=0, in_use=0, bearer_type=0
[00:08:04][in_sys_FindAccProfIdByApn] i=8, strapn=, acc_id=0, sim_info=0, acc_type=0, in_use=0, bearer_type=0
[00:08:04][in_sys_FindAccProfIdByApn] i=9, strapn=, acc_id=0, sim_info=0, acc_type=0, in_use=0, bearer_type=0
这样就有账号了,然后取第一行的账号,就可以联网了
***************************
现在就有个疑问,第三方浏览器是怎么向 g_srv_dtcnt_store_ctx 添加了与SIM对应的账号?