長簡訊處理方案
上次寫過對簡訊傳送的處理,並沒有體現出對長簡訊的處理方案,在實際應用中發現了以下問題,對於簡訊長度超過指定的大小時會出現截短的現象.
1)這種方案是處理長簡訊的方式(可以實現向客戶端傳送的連續的多條簡訊合併成一條在客戶端的手機上顯示)
/*** 華為簡訊傳送類處理(公用類)
* * @param 簡訊類,包括手機號,內容,序號
*/public int sendmessage(smsbean sms)
// system.out.println("myproxy.getconnstate():"+myproxy.getconnstate().tostring());
// 返回結果
int result = 0;
// 傳送號碼
arraylist tellist = sms.getmobilenolist();
dest_terminal_id = new string[tellist.size()];
for (int i = 0; i < tellist.size(); i++)
// 存活有效期
valid_time = new date(system.currenttimemillis() + (long) 0xa4cb800); // new
// date();//
// 定時傳送時間
at_time = null;// new date(system.currenttimemillis() + (long)
// 0xa4cb800); //new date();
// 使用者手機上顯示為短訊息的主叫號碼
// src_terminal_id=src_terminal_id+"001";
//封裝回執簡訊處理機制
string src_terminaltmp=src_terminal_id;
if(sms.getsn().length()==8)
try
else
// 初始化提交資訊
cmppsubmitmessage submitmsg = new cmppsubmitmessage(pk_total,
pk_number, registered_delivery, msg_level, service_id,
fee_usertype, fee_terminal_id, tp_pid, tp_udhi,
msg_fmt, msg_src, fee_type, fee_code, valid_time,
at_time, src_terminaltmp, dest_terminal_id,
msg_content, reserve);
cmppsubmitrepmessage submitrepmsg = (cmppsubmitrepmessage) myproxy.send(submitmsg);
if (submitrepmsg!= null)
} } catch (ioexception e)
return result;
}2)長簡訊拆分傳送顯示字首方案:(這種方案首先保證資料的完整性,同時有時序性)
/*** 華為簡訊傳送類處理(公用類)
* * @param 簡訊類,包括手機號,內容,序號
*/public int sendmessage(smsbean sms)
// system.out.println("myproxy.getconnstate():"+myproxy.getconnstate().tostring());
// 返回結果
int result = 0;
// 傳送號碼
arraylist tellist = sms.getmobilenolist();
dest_terminal_id = new string[tellist.size()];
for (int i = 0; i < tellist.size(); i++)
// 存活有效期
valid_time = new date(system.currenttimemillis() + (long) 0xa4cb800); // new
// date();//
// 定時傳送時間
at_time = null;// new date(system.currenttimemillis() + (long)
// 0xa4cb800); //new date();
// 使用者手機上顯示為短訊息的主叫號碼
// src_terminal_id=src_terminal_id+"001";
//封裝回執簡訊處理機制
string src_terminaltmp=src_terminal_id;
if(sms.getsn().length()==6)
try else
page=len/pagesize;
//長簡訊傳送方法
pk_total=page;
msg_fmt=15;
for (int m = 1; m <= page; m++) else
} catch (unsupportedencodingexception e1)
//長簡訊傳送方法
pk_number=m;
// 初始化提交資訊
cmppsubmitmessage submitmsg = new cmppsubmitmessage(pk_total,
pk_number, registered_delivery, msg_level, service_id,
fee_usertype, fee_terminal_id, tp_pid, tp_udhi,
msg_fmt, msg_src, fee_type, fee_code, valid_time,
at_time, src_terminaltmp, dest_terminal_id,
msg_content, reserve);
cmppsubmitrepmessage submitrepmsg = (cmppsubmitrepmessage) myproxy.send(submitmsg);
if (submitrepmsg!= null)
/*if (submitrepmsg.getresult() == 0)
* */
}} catch (ioexception e)
return result;
}3.比較,總結
方案一:將客戶需要接收的一條長簡訊內容整合成一條資訊,比較容易對一件事情進行處理.
方案二:可以支援那些不支援接收長簡訊的手機.這種互動方式會比較好.
現在使用的系統採用的是方案一,最初採用的是方案二,但客戶提出處理的時候需要對簡訊進行合併處理,這樣可能會比較好的節省流量.
CMPP協議對長簡訊的支援
1。cmpp3.0 超長簡訊 1 長短資訊 是指超過70個漢字,140個位元組的資訊內容。最近在做乙個某地市公司運營商的gprs導引專案的時候,運營商要求將對使用者的提示簡訊息 超過140個位元組 傳送到使用者手機,在使用者的手機上一次全顯示。上網搜尋了一些相關的資料,現在將實現總結如下 1.1.1...
協議開發 中移動CMPP2 0協議API(四)
接上篇 八 鏈路檢測 根據 cmpp 協議當鏈路檢測包發出超過時間 t後未收到響應,應立即再傳送鏈路檢測包,再連續傳送 n 1次後仍未得到響應則斷開此連線,並根據需要重新建立鏈結 t 60 秒,n 3 但也可以加快鏈路檢測的速度 這個並不影響 api的正常執行 要鏈路檢測測試 鏈路是每 30秒傳送一...
輕鬆學習C 開發CMPP2 0協議閘道器 2
登入協議包定義 訊息體包括 欄位名 位元組數屬性 描述 source addr 6 octet string 源位址,此處為sp id,即sp的企業 authenticatorsource 16 octet string 用於鑑別源位址。其值通過單向md5 hash計算得出,表示如下 authent...