今天用華爲的SGIP API包smproxy.jar測試聯通短信收發,發現短信的下發記錄與短信狀態報告沒有一個關聯的msgid,從網上搜了下,發現之前有人從論壇上問過這個問題:“各位大俠幫幫忙!!聯通狀態報告與下發的短信關聯的問題”http://bbs.csdn.net/topics/350021115
根據論壇最後一個回覆我沒實現,不過根據他的啓發,我換了種形式實現了。具體方法如下:
1. 下發表
//下發表msgid=src_node_Id+time_Stamp+sequence_Id
String msgid= Config.NodeID+ String.valueOf(resp.getTimeStamp())+ String.valueOf(resp.getSequenceId());
2. 狀態報告表
String submitSequenceNumber =TypeConvert.byte2NumberStr(getSubmitSequenceNumberBytes(rptMsg.getBytes()));//狀態報告msgid
submitSequenceNumber=submitSequenceNumber.replace(" ", "");//替換空格
//截取SubmitSequenceNumber數組
public byte[] getSubmitSequenceNumberBytes(byte[] jdField_buf_of_type_ArrayOfByte)
{
byte[] temp = new byte[12];
System.arraycopy(jdField_buf_of_type_ArrayOfByte, 12, temp, 0, 12);
return temp;
}
以上就是下發表的msgid與狀態報告表的submitSequenceNumber可以進行唯一關聯了!解決ok!