function TMainForm.getSendText( SendText, SendNumber: String):String; var tmp:String; begin tmp := AnsiToUnicode(SendText); //这里采用的设置为,让SIM卡自动填上短信中心的设置 '1100' result := '11000'+InttoHex(length(SendNumber),255)+'91'+ EncodePhoneNumber(SendNumber)+'0008AA'; if length(InttoHex(length(tmp) div 2,255))=1 then result := result+'0'; result := result +InttoHex(length(tmp) div 2,255)+tmp; end;
你應該是設置了手機自動通知, 也就是說,
對方收到短信後, 你又會收到一個消息告知!你可也, 發送後, 隔一會, 讀取新短信, 刪除短信!
這個我沒試過, 只能等待其它高手出現解答了!
New Message Indications to TE
AT+CNMI=?
+CNMI: (0,1),(0,1),(0,2),(0,2),(1)OK
AT+CNMI?
+CNMI: 0,0,0,0,1
or try this:
'6.23 Silence Command
AT+CSIL=?
ERROR
AT+CSIL?
ERROR
前两个参数我知道是干什么的,后面的不
知道,
AT+CNMI=1,1 可以设置短信到来通知端口。
实干什么操作?
[email protected]
var tmp:String;
begin tmp := AnsiToUnicode(SendText);
//这里采用的设置为,让SIM卡自动填上短信中心的设置 '1100'
result := '11000'+InttoHex(length(SendNumber),255)+'91'+
EncodePhoneNumber(SendNumber)+'0008AA';
if length(InttoHex(length(tmp) div 2,255))=1 then
result := result+'0';
result := result +InttoHex(length(tmp) div 2,255)+tmp;
end;
begin
CanSend := true;
SendText('at'+#13#10);
SendText('at+cmgf=0'+#13#10);
end;
s2 := self.getSendText(msg,PhoneNumber);
//showmessage(s2);
//发送命令长度
s:='at+cmgs='+inttostr(length(s2) div 2)+#13#10;
SendText(s);
waitcommEmpty(16);
SendText('00'+s2+chr(26));//chr(26) => Ctrl+z
谢谢
[email protected]