我们使用Java 1.6和logica_smpp.1.3.7.jar
我的问题是连接消息。我们总是使用DeliverSM类中的hasSarMsgRefNum方法来指示这是一个多消息部分。
然而,这已经改变,我们现在收到GSM短消息服务用户数据作为DeliverSM的一部分。
我可以获得DeliverSM的esm_class,它向我表明这是一个连接的消息部分。我无法检索shortMessage字段开头的实际用户数据标头信息。
这就是我获得UDHI的方式:
byte udhi = (byte)Data.SM_UDH_GSM;
if (del.getEsmClass() == udhi) {
log.debug("This is a concatenated message part!");
}
这就是我获取shortMessage的方法:
byte[] bytes = del.getShortMessage().getBytes();
然而,当我将其转换为String时,它看起来像这样:
^E^@^C�^B^This is part one of a test message...
我需要知道如何转换第一部分。
答案 0 :(得分:0)
我解决了这个问题。
我得到前5个字符(标题信息)。
int char1 = del.getShortMessage().charAt(1);
int char2 = del.getShortMessage().charAt(2);
等。
第3个字符是消息引用号。 第四个字符是整个部分。 第五个字符是当前的部分。
我希望这有助于将来的某些人:)