如何从DeliverSM(logica smpp)和java中检索UDH

时间:2013-02-26 07:36:16

标签: java smpp

我们使用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...

我需要知道如何转换第一部分。

1 个答案:

答案 0 :(得分:0)

我解决了这个问题。

我得到前5个字符(标题信息)。

  int char1 = del.getShortMessage().charAt(1);
  int char2 = del.getShortMessage().charAt(2);

等。

第3个字符是消息引用号。 第四个字符是整个部分。 第五个字符是当前的部分。

我希望这有助于将来的某些人:)