短信数据结构

来源:互联网 发布:js e.target 获取属性 编辑:程序博客网 时间:2024/05/22 05:39

mmi_bootup_is_network_searching_complete()              //查询网络中SIM1卡
mmi_bootup_is_sim2_network_searching_complete()         //查询网络中SIM2卡
share_GetIMSI()                                         //得到IMSI

发短信:进入s8* number  U16* content  U16 dcs SrvSmsCallbackFunc callback
1.申请SMS_HANDLE句柄
2.sms_handele初始化srv_sms_get_send_handle()
3.判断srv_sms_is_bg_send_action_busy()繁忙
4.srv_sms_set_address(send_handle,number)                //设置发送地址
     number是unc2       mmi_ucs2ncpy        app_ucs2_strncpy
             asc        mmi_asc_n_to_ucs2   app_asc_str_n_to_ucs2_str
5.srv_sms_set_content_dcs(send_handle, dcs)             //设置DCS 
6.编码转化
  uds2  size = (mmi_wcslen(content) + 1) * 2;
  7bit/8bit  size = strlen((s8 *)content) + 1;
7.srv_sms_set_content(send_handle,(s8 *)content,size)   //设置内容 
8.设置那个卡发送
  E_MTPNP_AD_SIMCARD_USABLE_SIDE state = MTPNP_AD_Get_UsableSide(); 得到卡的类型
  srv_sms_set_sim_id(send_handle, SRV_SMS_SIM_1);  //设置为那个SM1卡发送
9. srv_sms_send_msg(send_handle, ck_bg_send_msg_cb, NULL); //发送请求 并有回调

ClearKeyHandler(U16 keyCode, U16 keyType)

DisplayPopup(U8 *string, U16 imageId, U8 imageOnBottom, U32 popupDuration, U8 toneId) //水平显示一个提示框
DisplayPopupRotated(U8 *string, U16 imageId, U8 imageOnBottom, U32 popupDuration, U8 toneId,mmi_frm_screen_rotate_enum rotation) //可以设置方向的显示
MMI_FRM_SCREEN_ROTATE_0
MMI_FRM_SCREEN_ROTATE_MIRROR_0,

SMS_HANDLE  sms_handle;
srv_sms_handle_struct   *sms_hd = (srv_sms_handle_struct *)sms_handle;
srv_sms_int_msg_data_struct *int_msg_data = NULL;
srv_sms_send_handle_struct  *send_hd = (srv_sms_send_handle_struct *)smd_hd->hd_data;

typedef void* SMS_HANDLE;

typedef struct
{
    srv_sms_action_enum action;
    void *hd_data;
} srv_sms_handle_struct;

typedef enum
{
     srv_sms_action_none,
  SRV_SMS_ACTION_SEND,
  SRV_SMS_ACTION_READ,
  SRV_SMS_ACTION_DELETE,
  SRV_SMS_ACTION_SAVE,
     SRV_SMS_ACTION_UPDATE,
  SRV_SMS_ACTION_COPY,
     SRV_SMS_ACTION_MOVE,
     SRV_SMS_ACTION_QUERY,
  SRV_SMS_ACTION_CHANGE_STATUS,
     SRV_SMS_ACTION_MOVE_TO_ARCHIVE,
  SRV_SMS_ACTION_GET_CONTENT,
     SRV_SMS_ACTION_GET_SIM_NUM,
     SRV_SMS_ACTION_GET_REPLY_PATH,
 
  SRV_SMS_ACTION_TOTAL
}srv_sms_action_enum;

电话拦截
MakeCall                      53_09   35_09
mmi_ucm_call_launch           35_09   修改待机拨号

短信拦截
mmi_sms_handle_new_msg_ind    35_09
mmi_frm_sms_new_sms_ind       53_09
    mmi_frm_sms_delete_sms

 
srv_sms_event_struct *event_data;
srv_sms_event_new_sms_struct *event_info;
srv_sms_new_struct  *new_msg_data;
event_info = (srv_sms_event_new_sms_struct *)event_data->event_info;
new_msg_data = (srv_sms_new_struct *)event_data->msg_data;

 


typedef struct
{
    MMI_EVT_PARAM_HEADER                               
    void *event_info;
} srv_sms_event_struct
 
  #define MMI_EVT_PARAM_HEADER   
        U16 evt_id;                
        U16 size; 
        void *user_data;
typedef struct
{
    U16 msg_id;
    U8  *content;
    void *msg_data;
} srv_sms_event_new_sms_struct;

typedef struct
{
    U16 msg_id;
    U16 dest_port;
    U16 src_port;
    U16 message_len;
    U16 ref;        /* concat. message reference */
    U8 number[SRV_SMS_MAX_ADDR_LEN + 1];
 U8 sc_number[SRV_SMS_MAX_ADDR_LEN + 1];
    MYTIME timestamp;
    U8 total_seg;   /* total segments */
    U8 seg;         /* indicate which segment */
    U8 dcs;
    U8 mti;
    U8 pid;
    U8 fo;
    U8 data[1];
 srv_sms_sim_enum sim_id;
    srv_sms_storage_enum storage_type;
} srv_sms_new_msg_struct;
#define SRV_SMS_MAX_ADDR_LEN            21
typedef struct MYTIME
{
    kal_uint16 nYear;
    kal_uint8 nMonth;
    kal_uint8 nDay;
    kal_uint8 nHour;
    kal_uint8 nMin;
    kal_uint8 nSec;
    kal_uint8 DayIndex; /* 0=Sunday */
} MYTIME;
typedef enum
{
    SRV_SMS_SIM_1 = MMI_GSM | MMI_SIM1,
    SRV_SMS_SIM_2 = MMI_GSM | MMI_SIM2,

    SRV_SMS_SIM_TOTAL
} srv_sms_sim_enum;
typedef enum
{
    SRV_SMS_STORAGE_ME,
    SRV_SMS_STORAGE_SIM,

    SRV_SMS_STORAGE_UNSPECIFIC
} srv_sms_storage_enum;
typedef enum
{
   SMSAL_DEFAULT_DCS        = 0x00,  /* GSM 7-bit */
   SMSAL_8BIT_DCS           = 0x04,  /* 8-bit */
   SMSAL_UCS2_DCS           = 0x08,  /* UCS2 */ 
   SMSAL_RESERVED_DCS       = 0x0c,  /* reserved alphabet,
                                        currently, MMI shall display "not support alphabet"
                                        or "cannot display" when receive dcs indicated this value */
   SMSAL_EXT_DCS            = 0x10  /* Special dcs for non-standard character,
                                       used by MMI and EMS */
} smsal_dcs_enum;


srv_sms_msg_data_struce

/* Message Data Struture */
typedef struct
{
    S8 number[(SRV_SMS_MAX_ADDR_LEN + 1) * ENCODING_LENGTH];
    srv_sms_status_enum status;
    srv_sms_mti_enum mti;
    /* TP-Status, for Status Report */
    U8 tp_st;
    srv_sms_folder_enum folder_id;

    srv_sms_para_enum para_flag;
    srv_sms_storage_enum storage_type;
    srv_sms_sim_enum sim_id;
    MYTIME timestamp;

    S8 sc_address[(SRV_SMS_MAX_ADDR_LEN + 1) * ENCODING_LENGTH];
    srv_sms_pid_enum pid;
    srv_sms_vp_enum vp;

    MMI_BOOL status_report;
    MMI_BOOL reply_path;
 U16 src_port;
    U16 dest_port;
    srv_sms_dcs_enum dcs;
    srv_sms_class_enum msg_class;
    U16 content_buff_size;
    S8 *content_buff;
    S8 *content_file_path;

    void *content_ems;
} srv_sms_msg_data_struct;

typedef enum
{
    SRV_SMS_STATUS_NONE         = 0x00,
    SRV_SMS_STATUS_UNREAD       = 0x01,
    SRV_SMS_STATUS_READ         = 0x02,
    SRV_SMS_STATUS_SENT         = 0x04,
    SRV_SMS_STATUS_UNSENT       = 0x08,
    SRV_SMS_STATUS_DRAFT        = 0x10,
    SRV_SMS_STATUS_UNSUPPORTED  = 0x20
} srv_sms_status_enum;
/* Message Type Indication */
typedef enum
{
   SRV_SMS_MTI_DELIVER          = 0x00,
   SRV_SMS_MTI_DELIVER_REPORT   = 0x00,
   SRV_SMS_MTI_SUBMIT           = 0x01,
   SRV_SMS_MTI_SUBMIT_REPORT    = 0x01,
   SRV_SMS_MTI_STATUS_REPORT    = 0x02,
   SRV_SMS_MTI_COMMAND          = 0x02,  
   SRV_SMS_MTI_RESERVED         = 0x03
} srv_sms_mti_enum;
/* Message Folder Type */
typedef enum
{
    SRV_SMS_FOLDER_DEFAULT,
    SRV_SMS_FOLDER_ARCHIVE,

    SRV_SMS_FODLER_TOTAL
} srv_sms_folder_enum;

/* SMS Parameter Flag */
typedef enum
{
    SRV_SMS_PARA_NONE           = 0x00000000,

    SRV_SMS_PARA_NUM            = 0x00000001,
    SRV_SMS_PARA_SCA            = 0x00000002,
    SRV_SMS_PARA_PID            = 0x00000004,
    SRV_SMS_PARA_DCS            = 0x00000008,
    SRV_SMS_PARA_VP             = 0x00000010,
    SRV_SMS_PARA_STATUS_REPORT  = 0x00000020,
    SRV_SMS_PARA_REPLY_PATH     = 0x00000040,
    SRV_SMS_PARA_PORT           = 0x00000080,
 SRV_SMS_PARA_CLASS          = 0x00000100,
    SRV_SMS_PARA_MMS            = 0x00000200,
    SRV_SMS_PARA_FO             = 0x00000400,

    SRV_SMS_PARA_STATUS         = 0x00000800,
    SRV_SMS_PARA_SIM_ID         = 0x00001000,
    SRV_SMS_PARA_STORAGE_TYPE   = 0x00002000,
    SRV_SMS_PARA_TIMESTAMP      = 0x00004000,
  SRV_SMS_PARA_CONTENT_EMS    = 0x00008000,
    SRV_SMS_PARA_CONTENT_BUFF   = 0x00010000,
    SRV_SMS_PARA_CONTENT_FILE   = 0x00020000
} srv_sms_para_enum;

/* Message Storage Type */
typedef enum
{
    SRV_SMS_STORAGE_ME,
    SRV_SMS_STORAGE_SIM,

    SRV_SMS_STORAGE_UNSPECIFIC
} srv_sms_storage_enum;
/* SIM Card Type */
typedef enum
{
    SRV_SMS_SIM_1 = MMI_GSM | MMI_SIM1,
    SRV_SMS_SIM_2 = MMI_GSM | MMI_SIM2,

    SRV_SMS_SIM_TOTAL
} srv_sms_sim_enum;
/* Protocol Identifier */
typedef enum
{
    SRV_SMS_PID_DEFAULT             = 0x00, /* Text SMS */
    SRV_SMS_PID_EMAIL               = 0x32, /* Internet Electronic Mail */

    SRV_SMS_PID_TYPE_0              = 0x40, /* Short Message Type 0 */
 SRV_SMS_PID_REPLACE_TYPE_1      = 0x41, /* Replace Short Message Type 1 */
    SRV_SMS_PID_REPLACE_TYPE_2      = 0x42, /* Replace Short Message Type 2 */
    SRV_SMS_PID_REPLACE_TYPE_3      = 0x43, /* Replace Short Message Type 3 */
    SRV_SMS_PID_REPLACE_TYPE_4      = 0x44, /* Replace Short Message Type 4 */
    SRV_SMS_PID_REPLACE_TYPE_5      = 0x45, /* Replace Short Message Type 5 */
 SRV_SMS_PID_REPLACE_TYPE_6      = 0x46, /* Replace Short Message Type 6 */
    SRV_SMS_PID_REPLACE_TYPE_7      = 0x47, /* Replace Short Message Type 7 */

    SRV_SMS_PID_RETURN_CALL_MSG     = 0x5F, /* Return Call Message */
    SRV_SMS_PID_ANSI_136_RDATA      = 0x7C, /* ANSI-136 R-DATA */
  SRV_SMS_PID_ME_DOWNLOAD         = 0x7D, /* ME Data Download */
    SRV_SMS_PID_ME_DE_PERSONAL      = 0x7E, /* ME De-personalization Short Message */
    SRV_SMS_PID_SIM_DOWNLOAD        = 0x7F, /* (U)SIM Data Download */

    SRV_SMS_PID_RESERVED
} srv_sms_pid_enum;
/* Validity-Period */
typedef enum
{
    SRV_SMS_VP_1_HR     = 11,
    SRV_SMS_VP_6_HR     = 71,
    SRV_SMS_VP_12_HR    = 143,
    SRV_SMS_VP_24_HR    = 167,
    SRV_SMS_VP_72_HR    = 169,
    SRV_SMS_VP_1_WEEK   = 173,
    SRV_SMS_VP_MAX      = 255
} srv_sms_vp_enum;
/* SMS DCS */
typedef enum
{
    SRV_SMS_DCS_7BIT        = 0x00, /* GSM 7 bit default alphabet */
    SRV_SMS_DCS_8BIT        = 0x04, /* 8 bit data */
    SRV_SMS_DCS_UCS2        = 0x08, /* UCS2 (16bit) */
    SRV_SMS_DCS_RESERVED    = 0x0c
} srv_sms_dcs_enum;
/* Message Class Type */
typedef enum
{
   SRV_SMS_CLASS_0  = 0x00,
   SRV_SMS_CLASS_1  = 0x01,
   SRV_SMS_CLASS_2  = 0x02,
   SRV_SMS_CLASS_3  = 0x03
} srv_sms_class_enum;