如何用代码修改短信中心号码(短信开发) ( 积分: 30 )

  • 主题发起人 主题发起人 mawei0913_green
  • 开始时间 开始时间
M

mawei0913_green

Unregistered / Unconfirmed
GUEST, unregistred user!
现在我遇到这样一个问题,短信群发:硬件用了GSM MODEM和我们公司的软件,北京的客户可以给小灵通发短信(当然给移动手机也可以),但是我们的客户在内蒙古却不能给小灵通发短信,我打电话咨询了厂商,说是因为短信中心号码默认的是北京的,所以需要修改一下短信中心号码,,我们公司在坐这方面的问题时,把短信中心号码给忽略了,所以才有今天的事情发生,求助怎么用代码修改一下短信中心号码呢

请各位高人指教,谢谢!
 
用到的代码如下:
代码如下:
function TForm_Main.DecodeRecvData(head, s: string; comm: Tcomm): Boolean;
var
len : string;
reclen : string;
t : string;
i, l : Integer;
oa : string; //源地址
ud : string; //用户信息
rd: string;
ct : Integer;
Str : String;
iThird : Integer;
begin
if s <> '' then
begin
t := s;
iThird := 16;
repeat
Str := Copy(t,iThird,1);
iThird := iThird + 1;
until
Str = '0';
reclen := Copy(t,iThird - 1,Length(t) - 8 - iThird+3);
t := reclen;
// len := Copy(t, 1, 2); //短信中心号码长度
len := '$' + Copy(t, 1, 2); //短信中心号码长度
i := 1 + 2 + 2 * StrToInt(len); //忽略短信中心号码
//效验接收长度是否正确
i := i + 2; //忽略
l := StrToInt('$' + Copy(t, i, 2)); //源地址长度

l := ((l div 2) + (l mod 2)) * 2;
i := i + 2;
i := i + 2; //忽略源地址类型
oa := TelNumDecode(Copy(t, i, l));
i := i + l;
i := i + 2; //忽略协议类型
ct := StrToInt('$' + Copy(t, i , 2)); //编码类型
i := i + 2;
rd := TimeStampDecode(Copy(t, i, 12));
i := i + 12;
i := i + 2; //忽略时区
len := '$' + Copy(t, i, 2);
i := i + 2;
ct := (ct and $0c) shr 2;
if ct = 2 then
ud := USC2Decode(Copy(t, i, StrToInt(len) * 3))
else if ct = 0 then
// ud := GsmAlphabetDecode(Copy(t, i, Length(t)-i+4))
ud := GsmAlphabetDecode(Copy(t, i, StrToInt(len) * 3))
else
ud := Copy(t, i, (StrToInt(len)) * 2);
end;
WriteDataRev(oa,ud,comm);
end;
请各位高人,看看如何解决,谢谢!
 
各位 高人,怎么没人回答呀?难道没人懂短信开发的程序吗?
望各位能给予指点,谢谢!
 
StrCmds := TStringList.Create;
StrCmds.Clear; //清空发送命令缓冲区
StrReceive := ''; //清空接收命令缓冲区
PushCmd(Comm,'AT' + #13); //初始化GSM Modem 检验模块有无问题
PushCmd(Comm,'AT+CPIN?' + #13); //输入PIN码(检验密码)
PushCmd(Comm,'AT+CMGF=0' + #13); //PDU模式收发
PushCmd(Comm,'AT+CNMI=2,2,0,1,1' + #13); //短信提醒方式
PushCmd(Comm,'AT+CPMS="SM"' + #13); //设置短消息优先存储区域
PushCmd(Comm,'AT+CMGL=4' + #13); //将储存的短消息列表
sleep(1000);
PushCmd(Comm,'AT+CMGD=1,4' + #13);
PushCmd(Comm,'AT+CPMS="SM"' + #13); //选择存储区;
PushCmd(Comm,'AT+CMGL=4' + #13);
PushCmd(Comm,'AT+CMGD=1,4' + #13);

也不知上面这段需要修改吗?
现在的情况是,短信中心号码默认的是北京的,因为内蒙古那边客户要用,所以要修改成内蒙古的,所以现在遇到了麻烦,用硬件GSM MODEM发短信时,给手机发送短信可以,但是给小灵通却不成功,
急!请各位高人能给予说明呀,据硬件厂商说,必须要修改代码才行,直接在手机上修改不行的,请高人分析一下代码,怎样修改才行呀??
 
这么长时间还没解决的问题,有高人懂 串口通讯吗?
 
这要在组发送信息字符串时就要设置好,然后通过PDU编码后才能发送信息,软件上应该可以进行设置
 
这要看你的软件了怎么编程了,有的是自动获取本地的短信中心号码;另一种是你自己可以加一个代码,硬件厂商应该提供这个代码的,你应该和他们要
 
接受答案了.
 
后退
顶部