短信拦截

开机注册

InitNetWorkBootUpEventsCallBack

SetProtocolEventHandler(NetWorkAttachedIndication, PRT_NW_ATTACH_IND);

     NetWorkAttachedIndication

         ck_network_sim_ext (ck_Network_SIM2_ext)

             ck_Download_param

                 ck_reg_at_boot

                    seg_cai_ini            //开机下载参数

                        ck_Download_param

                             如果不是主卡就提示查入主卡

开机注册:ck_send_reg_cmd_sms

               (CMD,STN,06,00000000000,123456623412653,0000,01,0000)

          ck_bg_send_msg_ext

          弹出注册中的提示框,清除退出按键事件

          1分钟没有收到短信读出 注册未成功

          如果有凯立德50秒进入send_oper_after_makecall_req

 

上报位置

IdleApp.c

SetKeyHandler(StartOneKeyLongPressHandler, KEY_GPS, KEY_EVENT_LONG_PRESS);

SetKeyHandler(StartOneKeyUPHandler,KEY_GPS,KEY_EVENT_UP);

 

 

1.       onekeylongpress --à  

(ext_cld_navi )

   cld_custwp_get_navi_scr_id()==GetActiveScreenId()

||IsScreenPresent((U16)cld_custwp_get_navi_scr_id())  //当前或前一个screen是否是凯立德界面

Y   ck_checkandNav();

      ck_OKIS_ISregisted()       注册否

      ck_is_card1_absent()        是否是主卡

           Y  ----- ck_register_submitdialg()          //拨号注册

           N  ----- 提示插入主卡

      ck_nav_go()            //一键导航已经开启

          ck_DoNav()

               ck_get_uppos_setup()

                    Y ------- cking_interface_0x1F();

                    N--------  mmi_NAV_upok_ind_handle(0) //打电话

N    ck_checkandNavormap()

 

2.     mmi_gps_idle_enter_setting()

      mmi_gps_enter_setting();

 

 

短信拦截

mmi_sms_handle_new_msg_ind(srv_sms_event_struct *event_data)

    ck_recive_msg(event_data)

1.     创建new  srv_sms_event_new_sms_struct srv_sms_new_msg_struct

                  Event_info                       new_msg_data

2.     对其赋值  event_info = event_data->event->info;

                      New_msg_data = event_data->msg_data;

                      Dcs = new_msg_data->dcs;

3.     dcs = 4时,event_info->count指针指向的是数据的第2个字节

dcs = 0时,len = new_msg_data->message_len/2;

 

dcs转换成udc

4.     判断是否是处理过的信息。Bret = IsSameMessage(new_msg_data);

       IsSameMessage函数判断的依据是:1。短信的msgid 2。短信时间

       返回 bret true false

5.     bret = false

   ck_read_sms_hanlder(S8* pContent,U16 length,U16 dcs,U16 msgid)

       CovertStringForCkHandleSms((U8*)pContent,lenth,dcs,&datalen);

                         ASSIC转换成UDC

               检查是否是seg短信  checkIsSegHandlerSMS(pdata)

               检查是否是GPS短信  checkIsGPSHandlerSms(pdata,null)

              

InsertReadMsgID(msgid); //在开辟的一个数组中找一个可以存储短信位置的空间

    ck_read_sms_process()

      GetReadMsgID()  //获得短信ID

    判断当前ID == 0Xffff

     Y    ck_sms_read_msg(gb_curmsgid,TRUE,ck_read_sms_callback)

          Srv_sms_is_sms_ready()

                N    ck_read_sms_callback()

                     mmi_sms_result_enum

                     SMS_RESULT_OK

                      Y   seg_sms_new_sms_ind

                          GPS_handle_SMS

srv_sms_delete_msg_bg

                                     N   ck_read_sms_process

                Y    srv_sms_msg_data_struct  msg_data

                  Msg_data->para_flag = SRV_SMS_PARA_CONTENT_BUFF

                  Msg_data->content_buff

                  Msg_data->content_buff_size()

                  srv_sms_read_msg(msg_id,change_status,msg_data,ck_sms_read_msg_rsp,(void*)callback_func);

 

                  ck_sms_read_msg_rsp() //设置msg_status的状态

  N       gb_startReadMsg=FALSE;

gb_curmsgid=VALID_CACHE_MSG_ID;

 6. seg_sms_new_sms_ind

    GPS_handle_SMS

   

CacheMessage(new_msg_data);

srv_sms_delete_msg_bg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值