0

我们使用 Java 1.6 和 logica_smpp.1.3.7.jar

我的问题是连接消息。我们一直使用 DeliverSM 类中的 hasSarMsgRefNum 方法来表明这是一个多消息部分。

然而,这种情况发生了变化,我们现在接收作为 DeliverSM 一部分的 GSM 短消息服务用户数据。

我可以得到 DeliverSM 的 esm_class,它向我表明这是一个串联的消息部分。我在检索短消息字段开头的实际用户数据标题信息时遇到了困难。

这就是我获得UDHI的方式:

  byte udhi = (byte)Data.SM_UDH_GSM;

  if (del.getEsmClass() == udhi) {
      log.debug("This is a concatenated message part!");
  }

这就是我获得短消息的方式:

  byte[] bytes = del.getShortMessage().getBytes();

但是,当我将其转换为字符串时,它看起来像这样:

  ^E^@^C�^B^This is part one of a test message...

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

4

1 回答 1

0

我解决了这个问题。

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

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

ETC..

第三个字符是消息参考号。第 4 个字符是总部分。第 5 个字符是当前部分。

我希望这对将来的人有所帮助:)

于 2013-02-26T09:27:12.507 回答