亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

手機短信息SMS的程序開發

2019-11-18 19:55:09
字體:
來源:轉載
供稿:網友

目前手機短信息的應用越來越廣泛,互聯網上提供短信息發送的站點也越來越多,但一些站點的服務并不盡如人意,往往發出去的短信息石沉大海。最可靠的發送方法當然是用手中的手機了,如果設置了狀態報告,更能確切知道對方是否收到了此條信息。手機發送盡管比較可靠, 但也存在輸入麻煩、效率低的問題。本文介紹一種方法,只要手機能夠與電腦相連(通過紅外端口或用手機數據線連接串行口,同時手機支持GSM AT指令集),就可以通過自行編制的短信息發送軟件,實現短信息的發送。


現在市場上的大多數手機均支持類似于Modem控制的GSM AT指令集,該指令集是由諾基亞、愛立信、摩托羅拉和HP等廠家共同為GSM系統研制的,其中包含了對SMS(Short Message Service)的控制。
GSM AT相關指令的介紹
與SMS有關的GSM AT指令如表1所示:

表1 相關的GSM AT指令
對SMS的控制共有三種實現途徑:
Block Mode;
基于AT命令的Text Mode;
基于AT命令的PDU Mode。
Text Mode比較簡單,多款諾基亞手機均支持該模式。西門子的手機大多只支持PDU模式,PDU模式是發送或接收手機SMS信息的一種方法,短信息正文經過十六進制編碼后被傳送。目前,PDU已取代Block Mode,因此本文主要探討PDU模式的發送。
計算機和手機的通信
本文以西門子 S3568i為例,介紹如何實現短信息的發送。
數據線連接
首先,通過S35/25數據線將手機與電腦串行口相連。然后,打開超級終端,選擇直接串行口連接,端口參數設為19200速率、無校驗、數據位8、停止位1。
紅外線連接
如果使用帶紅外端口的計算機,可以設置與手機的無線連接。首先確認計算機紅外端口已打開,并將手機的紅外線和收傳真/數據功能打開,對接紅外端口,計算機系統托盤上應當出現一個紅外設備西門子S35(如果沒有安裝紅外監視器,則不顯示)。然后,打開超級終端,選擇IrDa上的串行口。
連接測試
點擊超級終端工具條上的呼叫按鈕,輸入AT并回車,屏幕上如果出現OK則表明計算機與手機的連接成功,這時就可以輸入各類GSM AT指令了。
如:查詢手機廠家,輸入AT+CGMI=<CR>,屏幕顯示Siemens。
通常情況下,執行測試命令AT+CMGS=?<CR>,如果返回OK,表明手機支持此指令。該指令的完整語法格式如下:
If PDU mode (+CMGF=0)+CMGS=<length><CR>PDU is given <ctrl-Z/ESC>
如果短信息格式指令AT+CMGF返回的是0,則SMS格式為PDU模式,再執行AT+CMGS=<數據長度>命令后,手機返回“>”符號并等待輸入,輸入PDU數據并以^Z或Esc鍵結束。
如果信息發送成功,則返回OK,并顯示信息號:
+CMGS: <mr>
如果發送失敗,則返回如下信息:
+CMS ERROR: <err>
PDU數據格式的分析
下面通過對存儲在手機中的待發信息的分析,來介紹SMS PDU的數據格式。首先,用手機寫一條短信息,發送手機號碼為13605696031,信息內容為“Hello World!”。通過執行AT+CMGL=2可以讀出此條信息。
操作過程如下(斜體字符為響應信息,{}內為注釋):
AT
OK
AT+CMGL=2 {讀未發短信息}
+CMGL: 1,2,,24 {1表示信息個數,2表示未發信息,24表示信息總容量}
08 91 683108501505F0 11 00 0B 81 3106656930F1 0000A7 0B E8329BFD06DDDF723619
OK 
下面分析這條信息:
08:短信息中心地址長度。
91:短信息中心號碼類型,91是TON/NPI。TON/NPI遵守International/E.164標準,指在號碼前需加‘+’號;此外還可有其他數值,但91最常用。
683108501505F0:短信息號碼,是所使用的服務中心地址。由于位置上略有處理,實際號碼應為:8613805515500(字母F意指長度減1),這是作者所在地GSM短信息中心的號碼。
11:文件頭字節(header byte,是一種bitmask)。這里11指正常地發送短信息。
00:信息類型。
0B:被叫號碼長度。
81:被叫號碼類型。
3106656930F1:被叫號碼,也經過了移位處理,實際號碼為13605696031。
0000A7:短信息編碼類型GSM Default Alphabet,如為中文則是000010。
0B:短信息長度。
E8329BFD06DDDF723619:短信息內容“Hello World!”。
短信息的編碼方法及編程實現
下面我們介紹純英文和純中文的信息編碼方法。通過測試我們發現,每條發送的短信息前面部分均相同,只是被叫號碼和短信息內容有變化。
1.英文編碼
參見表2,設短信息內容為“Hello World!”。缺省的GSM 字符集為7位編碼,可以簡單地理解為ASCII碼(ASCII值小于80Hex,因此,Bit8被忽略),依次將下一7位編碼的后幾位逐次移至前面,形成新的8位編碼,參見表2箭頭指示。需要注意的是第9行,移位計數已達7位,則直接將本編碼前加0。GSM并非支持所有的ASCII字符顯示。
表2 英文編碼的實現過程

下面是實現英文編碼的部分Delphi 5代碼:
//英文格式編碼,s為String
function Encode1(var s:String):String;
var
i,j,len:Integer;
cur:Integer;
t:String;
begin
Result:=‘’;
len:=Length(s);
//j 用于移位計數
i:=1;j:=0;
while i<=len do
begin
if i<len then
//數據變換
cur:=(ord(s[i]) shr j) or ((ord(s[i+1]) shl (7-j)) and $ff)
else
cur:=(ord(s[i]) shr j) and $7f;
FmtStr(t,‘%2.2X’,[cur]);
Result:=Result+t;
inc(i);
//移位計數達到7位的特別處理
j:=(j+1) mod 7;if j=0 then inc(i);
end;
end;  
2.中文編碼
參見表3,設短信息內容為“中文短信息”。中文短信息的實現較簡單,只需將GB2312的中文編碼轉換為代碼頁為CP936的Unicode編碼即可。
表3 中文編碼的實現過程

通過Delphi的WideString類型轉換,可以巧妙地實現GB2312到Unicode的編碼轉換(注意代碼頁和操作系統相關聯)。下面是實現中文編碼的部分Delphi 5代碼:
// 中文格式編碼,s為Unicode String
function Encode2(var s:WideString):String;
var
i,len:Integer;
cur:Integer;
t:String;
begin
Result:=‘’;
len:=Length(s);
i:=1;
while i<=len do
begin
cur:=ord(s[i]);
//BCD轉換
FmtStr(t,‘%4.4X’,[cur]);
Result:=Result+t;
inc(i);
end;
end;
小 結
以上介紹了PDU格式的短信息編碼。建議英文信息長度不超過140個字符,中文信息不要超過54個漢字。如果使用能夠支持文本方式的手機進行發送,實現起來更簡單。如發送“Hello World!”,用如下的AT指令即可:
AT+CGMF=1<CR>AT+CGMS=“13605696031”,129<CR>
>Hello World!<^Z>


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文字幕欧美专区| 久久人人爽人人爽人人片亚洲| 欧洲成人在线视频| 亚洲国产精品免费| 一区二区福利视频| 日本精品免费观看| 久久久久久伊人| 亚洲精品中文字幕av| 欧美日韩午夜视频在线观看| 欧美精品www在线观看| 亚洲老头同性xxxxx| 亚洲精品国产成人| 97色伦亚洲国产| 91国内在线视频| 国产一区二中文字幕在线看| 欧美成人精品影院| 国产精品久久久久久久久久99| 欧美多人爱爱视频网站| 国产精品视频色| 在线观看精品国产视频| 成人黄色午夜影院| 亚洲欧洲国产伦综合| 久久亚洲精品中文字幕冲田杏梨| 色琪琪综合男人的天堂aⅴ视频| 欧美性猛交xxxx乱大交蜜桃| 久久国产精品久久久| 亚洲伊人一本大道中文字幕| 午夜精品久久久久久久白皮肤| 国产精品美腿一区在线看| 国产精品露脸av在线| 亚洲第一网站男人都懂| 国产成人一区二区三区| 亚洲第一天堂av| 欧美综合激情网| 欧美午夜视频一区二区| 国产伦精品免费视频| 91极品视频在线| 欧美激情一区二区三区高清视频| 精品国产一区二区三区久久狼黑人| 国产亚洲美女久久| 日韩理论片久久| 亚洲天堂日韩电影| 日韩av在线高清| 国产在线拍揄自揄视频不卡99| 自拍偷拍亚洲一区| 久久夜精品va视频免费观看| 日韩免费观看网站| 国产亚洲精品久久久久久777| 欧美日韩国产综合新一区| 在线看日韩av| 中文字幕亚洲一区| 亚洲性69xxxbbb| 91国产精品视频在线| 色综合久久天天综线观看| 7777免费精品视频| 亚洲va欧美va国产综合剧情| 日韩毛片在线看| 日本乱人伦a精品| 亚洲女人天堂网| 九九精品在线观看| 亚洲成年人在线| 久久久久成人网| 91成人免费观看网站| 精品国产美女在线| 国产精品毛片a∨一区二区三区|国| 国语对白做受69| 欧美成年人视频| 欧美在线激情网| 久久人人爽人人爽人人片av高清| 中文字幕亚洲色图| 欧美久久精品一级黑人c片| 日韩精品中文字幕在线| 一区二区国产精品视频| www国产91| 97国产精品视频| 日韩av网站在线| 日韩av综合网站| 黄网站色欧美视频| 中文字幕欧美日韩| 久久夜色精品国产亚洲aⅴ| 亚洲视频在线免费看| 国产精品无av码在线观看| 亚洲精品99久久久久| 欧美亚洲视频在线观看| 日韩欧美在线视频观看| 精品国产一区二区三区久久久| 人人澡人人澡人人看欧美| 4438全国成人免费| 欧美日韩国产成人高清视频| 久久夜色精品亚洲噜噜国产mv| 久久综合久久八八| 国产精品jvid在线观看蜜臀| 欧美一级淫片播放口| 狠狠综合久久av一区二区小说| 欧美夫妻性生活xx| 国产精品日韩精品| 国产精品88a∨| 国产精品成人v| 国内精品小视频在线观看| 久久亚洲精品中文字幕冲田杏梨| 国产欧美在线观看| www.国产一区| 国内精品国产三级国产在线专| 国产精品一二区| 久久成人人人人精品欧| 亚洲欧美日韩国产中文专区| 午夜免费在线观看精品视频| 中文字幕欧美日韩| 欧美性生交xxxxxdddd| 精品免费在线视频| 亚洲欧美中文另类| 成人福利网站在线观看| 亚洲人免费视频| 97视频网站入口| 亚洲欧洲在线视频| 国产ts一区二区| 国内外成人免费激情在线视频| 日韩av在线资源| 国产成人在线精品| 在线观看国产精品日韩av| 亚洲国产精品视频在线观看| 色黄久久久久久| 成人黄色激情网| 亚洲欧美激情另类校园| 国产欧美日韩中文字幕在线| 国产精品 欧美在线| 久久精品99无色码中文字幕| 国产日韩欧美日韩| 91中文字幕在线| 亚洲精品国产成人| 亚洲直播在线一区| 国内精品伊人久久| 国产精品福利小视频| 91禁外国网站| 欧美美最猛性xxxxxx| 国产91在线播放九色快色| 国产精品免费久久久| 深夜福利91大全| 欧美怡红院视频一区二区三区| 亚洲精品女av网站| 欧美xxxwww| 91麻豆桃色免费看| 色噜噜国产精品视频一区二区| 亚洲在线免费观看| 欧美亚洲免费电影| 日韩av网站大全| 亚洲日本中文字幕免费在线不卡| 欧美电影在线观看高清| 国产精品日日摸夜夜添夜夜av| 国产精品白嫩美女在线观看| 国内外成人免费激情在线视频网站| 亚洲变态欧美另类捆绑| 欧美性猛交99久久久久99按摩| 日韩电影视频免费| 久久亚洲综合国产精品99麻豆精品福利| 久久九九亚洲综合| 亚洲aⅴ日韩av电影在线观看| 亚洲精品国产免费| 亚洲日韩第一页| 日韩在线观看视频免费| 91免费看国产| 日本91av在线播放| 成人激情在线播放| 国产69精品久久久久9|