如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
pdp激活代码流程和注意事项pdp激活代码流程和注意事项最近发现一些客户在我们平台开发socket应用时,总是对pdp的激活流程存在问题,激活不成功。整理了下面的pdp激活的步骤(需要三个步骤)和示例代码,供开发者参考:假设应用g_test_app需要激活pdp连接,该应用的定义和回调函数如下:MMI_APPLICATION_Tg_test_app={0};g_test_app.Processmsg=HandleTestPsMsg;步骤1:在mmk_regapp.def中给新应用注册pdp激活消息(非必须步骤,请认真查看下面的注意事项):REG_APP(APP_MN_ACTIVATE_PDP_CONTEXT_CNF,APP_MN_ACTIVATE_PDP_CONTEXT_CNF,&g_test_app);步骤2:设置pdp激活需要的参数,发起pdp激活的请求:error=MNGPRS_SetPdpContextPcoEx(g_sim_select,1,userpsw,userpsw);//用户名,密码设置error=MNGPRS_SetAndActivePdpContextEx(MN_DUAL_SYS_1,APN,IM_E);//发起请求if(ERR_MNGPRS_NO_ERR==error){//注意:此处什么都不做,返回no_err仅仅代表pdp激活请求已经发送,不代表pdp已经激活!}步骤3:在app的回调函数中处理收到的协议消息:LOCALMMI_RESULT_EHandleTestPsMsg(PWNDapp_ptr,uint16msg_id,DPARAMparam){...MMI_GPRS_T*signal_ptr=(MMI_GPRS_T*)param;SCI_PASSERT(NULL!=app_ptr);if(FALSE==g_testapp_is_active){retrunMMI_RESULT_FALSE;//注意:如果当前应用没有激活,则必须返回FALSE,使得消息可以分发给注册比较晚的应用}switch(msg_id){caseAPP_MN_ACTIVATE_PDP_CONTEXT_CNF:{if(MN_GPRS_ERR_SUCCESS==signal_ptr->result){//PDP激活成功...}elseif(MN_GPRS_ERR_TEMPORARILY_BLOCKED==signal_ptr->result||MN_GPRS_ERR_RETRYING==signal_ptr->result){//PDP暂未激活成功,MMI可间隔一段时间再试,重试1~3次...}else{//PDP激活失败...}break;}//APP_MN_ACTIVATE_PDP_CONTEXT_CNF...}...)步骤4:在wap应用的回调函数中增加代码,使得优先让新应用处理消息,蓝色为增加的代码(非必须步骤,请认真查看下面的注意事项):LOCALMMI_RESULT_EHandleWapPsMsg(PWNDapp_ptr,uint16msg_id,DPARAMparam){......//变量初始化,代码略//优先让新应用处理消息if(TRUE==g_testapp_is_active){HandleTestPsMsg(app_ptr,msg_id,param);}//下面为wap应用对相关消息的处理switch()msg_id{......}......}【注意事项-----------------------------------------------我很重要,一定要看哦------------------------------------------注意事项】1.pdp激活流程有两种实现方法:1).新应用不注册pdp激活的消息,由于wap模块已经注册过了,因此只需在wap的回调函数中增加自己的回调函数并优先处理就可以了.此种方式结合上面的顺序,激活的流程为:步骤2->步骤3->步骤4;2).新应用为了更好的模块化,减少模块之间的耦合性,不在wap的回调函数中处理,那就需要给自己应用注册pdp激活消息,然后在自己的回调函数中处理即可。此种方式结合上面的顺序,激活的流程为:步骤1->步骤2->步骤3;2.建议客户采用第一种方式.因为相对比较简单一些,现在大部分应用如mms,qq等都采用该方式,该方式的优点是:简单,方便,缺点是增加了模块之间的耦合性。第二种方法的优点是更符合模块化原则,如果一定要采用第二种方式,切记:一定要放在mmk_regapp.def中靠前的位置(具体点就是需要在wap注册该消息之前完成新应用的消息注册),否则会导致新应用一直收不到pdp激活的消息.这个原因是目前平台的外部消息处理机制是