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...
その最初の部分を変換する方法を知る必要があります。