///保存收件箱的短信到系统盘中
///全局变量
S8 g_sms_buffer[160 + 1] = {0}; //一条短信最大的长度
static int sms_num_count; //记录短信的条数
///计算双字节的长度
int wstrlen(char * txt)
{
int lenth = 0;
unsigned char *ss = (unsigned char*)txt;
while(((*ss<<8) + *(ss + 1)) != 0)
{
lenth += 2;
ss += 2;
}
return lenth;
}
void my_msg_get_msg_rsp(void* data, module_type mod, U16 result)
{
EMSData *pEms;
UINT len;
int fh;
WCHAR wsPath[64 + 1] = {0};
char szStrTime[512] = {0};
GetEMSDataForView(&pEms,0);
len = wstrlen((char *)(pEms->textBuffer)) + 2;
memcpy(g_sms_buffer,pEms->textBuffer,len);
kal_wsprintf(wsPath, "%c://msg.txt",WAP_SYSTEM_DRV);
fh = FS_Open(wsPath,FS_READ_WRITE|FS_OPEN_SHARED|FS_CREATE);
if (fh > 0)
{
FS_Seek(fh,0,FS_FILE_END);
mmi_chset_ucs2_to_text_str((kal_uint8*)g_sms_buffer, (kal_int16)len, (kal_uint8*) pEms->textBuffer, 1);
sms_num_count--;
if (sms_num_count >= 0)
{
sprintf(szStrTime,
"%s %04d-%02d-%02d %02d:%02d %s/r/n",
mmi_frm_sms_msg_box[sms_num_count].number,
mmi_frm_sms_msg_box[sms_num_count].timestamp[0] + 2000,
mmi_frm_sms_msg_box[sms_num_count].timestamp[1],
mmi_frm_sms_msg_box[sms_num_count].timestamp[2],
mmi_frm_sms_msg_box[sms_num_count].timestamp[3],
mmi_frm_sms_msg_box[sms_num_count].timestamp[4],
g_sms_buffer
);
FS_Write(fh, (void*)szStrTime, strlen(szStrTime),&len);
}
}
FS_Close(fh);
}
S32 my_msg_get_msg_req(U8 type, U16 req_index,int cur_sim)
{
U16 index;
index = req_index;
mmi_frm_sms_read_sms(my_msg_get_msg_rsp, MOD_MMI, type, index, MMI_TRUE);
return 0;
}
void save_sms_to_txt()
{
int i;
g_msg_cntx.toDisplayMessageList = TO_DISPLAY_MESSAGE_LIST_INBOX;
sms_num_count = mmi_frm_sms_inbox_size;
for (i=0;i<mmi_frm_sms_inbox_size;i++)
{
my_msg_get_msg_req(MMI_FRM_SMS_APP_INBOX, i,0);
}
}