今天用华为的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!