短信攔截

開機註冊

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章