自從05年后,很少接觸研究短信的技術(shù)問題了,并且思維上也固定了很多東西,老覺得自己是短信專家了,沒想到今天一伙計(jì)跟我說手機(jī)可以一次發(fā)200多字的短信,并且接收方收下來后也是一條短信.這時(shí)才明白還有超長(zhǎng)短信一說,在03年時(shí)對(duì)FLASH短信,圖片鈴聲短信,WAPPUSH,OTA短信都有過編碼制作.但一直沒有去好好通讀GSM03.40協(xié)議,這協(xié)議對(duì)特殊短信都做了詳細(xì)的規(guī)定
GSM 03.40規(guī)范(TP-06 1999-12-15 7.4.0)中規(guī)定了SME對(duì)于超長(zhǎng)短信的合并處理,當(dāng)前絕大部分GSM手機(jī)都支持超長(zhǎng)短信.
超長(zhǎng)短信編碼:首先把TP_udhi的值設(shè)置設(shè)置為1,在消息正文中增加協(xié)議頭,基本上所有特殊短信這樣設(shè)置它為1
接著在每條超長(zhǎng)短信分割而成的短信中增加協(xié)議頭,協(xié)議頭分兩種,分別是長(zhǎng)度為6和長(zhǎng)度為7的協(xié)議頭。格式如下:
6位協(xié)議頭格式:05 00 03 XX MM NN
byte 1 : 05, 表示剩余協(xié)議頭的長(zhǎng)度
byte 2 : 00, 這個(gè)值在GSM 03.40規(guī)范9.2.3.24.1中規(guī)定,表示隨后的這批超長(zhǎng)短信的標(biāo)識(shí)位長(zhǎng)度為1(格式中的XX值)。
byte 3 : 03, 這個(gè)值表示剩下短信標(biāo)識(shí)的長(zhǎng)度
byte 4 : XX,這批短信的唯一標(biāo)志,事實(shí)上,SME(手機(jī)或者SP)把消息合并完之后,就重新記錄,所以這個(gè)標(biāo)志是否唯一并不是很重要。
byte 5 : MM, 這批短信的數(shù)量。如果一個(gè)超長(zhǎng)短信總共5條,這里的值就是5。
byte 6 : NN, 這批短信的數(shù)量。如果當(dāng)前短信是這批短信中的第一條的值是1,第二條的值是2。
例如:05 00 03 39 02 01
7位的協(xié)議頭格式:06 08 04 XX XX MM NN
byte 1 : 06, 表示剩余協(xié)議頭的長(zhǎng)度
byte 2 : 08, 這個(gè)值在GSM 03.40規(guī)范9.2.3.24.1中規(guī)定,表示隨后的這批超長(zhǎng)短信的標(biāo)識(shí)位長(zhǎng)度為2(格式中的XX值)。
byte 3 : 04, 這個(gè)值表示剩下短信標(biāo)識(shí)的長(zhǎng)度
byte 4-5 : XX XX,這批短信的唯一標(biāo)志,事實(shí)上,SME(手機(jī)或者SP)把消息合并完之后,就重新記錄,所以這個(gè)標(biāo)志是否唯一并不是很重要。
byte 6 : MM, 這批短信的數(shù)量。如果一個(gè)超長(zhǎng)短信總共5條,這里的值就是5。
byte 7 : NN, 這批短信的數(shù)量。如果當(dāng)前短信是這批短信中的第一條的值是1,第二條的值是2。
例如:06 08 04 00 39 02 01
因?yàn)橐话阋粋€(gè)BYTE計(jì)算超長(zhǎng)短信的標(biāo)志即可,一般編碼使用6位協(xié)議頭
超長(zhǎng)短信大大拓展了短信息就70個(gè)漢字的應(yīng)用擴(kuò)展,像GOOGLE的短信搜索回復(fù),什么亂七八糟的下發(fā)把一個(gè)事情整成一條下發(fā),不就用戶感知就清楚明白多了,用在校訊通上也好的,曾經(jīng)給GOOGLE網(wǎng)上留過建議,但沒人鳥我,誰叫我個(gè)草根