找回密码
 注册
搜索
查看: 2460|回复: 8

[讨论] mtk 后台自动回复短信 碉堡了.......

[复制链接]
发表于 2012-5-16 23:36:58 | 显示全部楼层 |阅读模式
设备里面有拦截功能,主机给设备发短信,根据收到不同短信指令,向服务器发送请求,服务器返回数据,然后把内容返回给主机。
返回短信长度超过一条了,所以用后台长短信发送,内容可以正常返回一条(长短信),但是偶尔会在后面跟着一条“空格”内容短信。  不经常发生,
先贴个代码:

void test_sendSms(char* pNumber, char*pContent, PsFuncPtrU16 callback)
{
       int numlen = 0;
        S8 * textbufUCS2 = NULL;
        S8 smsPhoneNumber [(MAX_DIGITS_SMS+1)*ENCODING_LENGTH] = {0};
        EMSData        *pEMS = NULL;
        byte  result;
        int len,i;

        len = mlbswstrlen(pContent);
        ReleaseEMSEditBuffer();
        pEMS = (EMSData        *)GetEMSDataForEdit(0,1);

      if(pEMS == NULL)
                return;

        g_msg_cntx.sendSaveStatus = SEND_SAVE_NIL;
        memset (g_msg_cntx.smsPhoneNumber, 0, sizeof(g_msg_cntx.smsPhoneNumber));
        numlen = strlen(pNumber) > MAX_DIGITS_SMS?MAX_DIGITS_SMS:strlen(pNumber);
        AnsiiNToUnicodeString((S8 *) smsPhoneNumber,( S8 *) pNumber,numlen);
        pfnUnicodeStrcpy(g_msg_cntx.smsPhoneNumber,(S8 *)smsPhoneNumber);

        PendingSaveSendData.totalSegments=1;
        PendingSaveSendData.mti=SMSAL_MTI_SUBMIT;
        memset(PendingSaveSendData.TPUD, 0,sizeof(PendingSaveSendData.TPUD));

        for (i=1; i<mmi_msg_get_seg_num(); i++)
        {
                PendingSaveSendData.TPUDLen=0;
                PendingSaveSendData.TPUD_p=NULL;
                PendingSaveSendData.l4index=SMS_INVALID_INDEX;
                PendingSaveSendData.TPUD_udhi= FALSE;
        }

        g_msg_cntx.sendMessageCase = SEND_CASE_SEND_ONLY;

        textbufUCS2 = (S8 *)OslMalloc(len+2);
        if(textbufUCS2 == NULL)
                return;
        memset((void *)textbufUCS2,0,len+2);
        memcpy((void *)textbufUCS2,(void *)pContent,len);
        result = AppendEMSString (IMM_INPUT_TYPE_SENTENCE,
        pEMS, (U8*)textbufUCS2, SMSAL_UCS2_DCS, NULL);  
        if(textbufUCS2)       
                OslMfree(textbufUCS2);
        if(result)
        {
                mmi_frm_sms_send_struct * sendData=OslMalloc(sizeof(mmi_frm_sms_send_struct));
                if(sendData == NULL)
                         return;
                MlbsCloseSmsReport = TRUE;
                memset((S8*)sendData, 0, sizeof(mmi_frm_sms_send_struct));
                memset(sendData->number, 0, MAX_DIGITS_SMS);       
                memcpy(sendData->number, pNumber,numlen);
                //自定义回调函数判断
                if(callback)
                {
                        mmi_frm_sms_send_sms( callback, MOD_MMI, sendData);
                }
                else
                {
                        mmi_frm_sms_send_sms( mlbs_send_mode_message_cellback, MOD_MMI, sendData);
                }
                if(sendData)
                        OslMfree(sendData);
        }
        else
        {
                MlbsCloseSmsReport = FALSE;
        }
}



我调试,  后面那条“空格”短信,没用经过这个函数处理,  
上面函数使我写的,  其他都是调用自带的短信函数。
这个情况跟服务器返回的内容有关系吗?

[em08][em08][em08]
 楼主| 发表于 2012-5-17 20:21:09 | 显示全部楼层
解决了。  在 test_sendSms里面加入状态标示,  如果在使用就不处理本次短信发送请求。状态清零在回调函数里实现。

不是完美的解决方法[em11][em11][br]<p align=right><font color=red>+1 RD币</font></p>
点评回复

使用道具 举报

 楼主| 发表于 2012-5-17 11:42:50 | 显示全部楼层
主要后台发短信操作,帮忙看下有没有问题。
因为之前用的是一条(70汉字)短信,没有这个问题,后来因为内容太多,另外写一个前期处理函数。   [em08][em08]
点评回复

使用道具 举报

发表于 2012-5-17 09:58:48 | 显示全部楼层
以下是引用li901029在2012-5-17 9:44:04的发言:
没人遇到这个问题。 问题描述不够清楚?[em13][em13]

确实有点不清楚
点评回复

使用道具 举报

 楼主| 发表于 2012-5-17 09:44:04 | 显示全部楼层
没人遇到这个问题。 问题描述不够清楚?[em13][em13]
点评回复

使用道具 举报

发表于 2012-6-1 21:28:00 | 显示全部楼层
楼主不错![em01]
点评回复

使用道具 举报

发表于 2012-6-19 12:02:08 | 显示全部楼层
以下是引用li901029在2012-5-17 20:21:09的发言:
解决了。                在 test_sendSms里面加入状态标示,                如果在使用就不处理本次短信发送请求。状态清零在回调函数里实现。

不是完美的解决方法[em11][em11]
<p align=right><font color=red>+1 RD币</font></p>

奖励1RDB,感谢楼主的分享
点评回复

使用道具 举报

发表于 2012-7-27 08:37:33 | 显示全部楼层
坑人的代码 好多用户要求清此代码!!!!!很难清干净。
点评回复

使用道具 举报

发表于 2012-10-20 22:11:38 | 显示全部楼层
Good!
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2025-1-31 02:57 , Processed in 0.066563 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表