0

Java 1.6 と logica_smpp.1.3.7.jar を使用します。

私の問題は、連結されたメッセージにあります。これがマルチ メッセージ パーツであることを示すために、DeliverSM クラスの hasSarMsgRefNum メソッドを常に使用していました。

ただし、これは変更され、DeliverSM の一部として GSM ショート メッセージ サービスのユーザー データを受け取るようになりました。

これが連結されたメッセージ部分であることを示す、DeliverSM の esm_class を取得できます。shortMessage フィールドの先頭にある実際のユーザー データ ヘッダー情報を取得できません。

これは私が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);

等..

3 文字目はメッセージ参照番号です。4文字目は全パーツです。5 番目の文字が現在のパーツです。

これが将来誰かに役立つことを願っています:)

于 2013-02-26T09:27:12.507 に答える