delivery_sm をゲートウェイに送信する smsc シミュレーターを開発しようとしています。これで、deliver_sm 要求をゲートウェイに正常に送信できるようになりました。しかし、今回はメッセージ本文として Unicode 文字を送信する必要があります。 . メッセージの 16 ビット エンコーディングが正しくないと思います。これが私のコードです。可能であれば、修正されたコードを教えてください。
try {
ByteBuffer ed = new ByteBuffer();
DeliverSM request = new DeliverSM();
private String message="text";
private SimulatorPDUProcessor proc;
request.setEsmClass((byte)Data.SM_UDH_GSM); //Set UDHI Flag Data.SM_UDH_GSM=0×40
request.setDataCoding((byte) ((byte) 0*04));
ed.appendByte((byte) 6); // UDH Length
ed.appendByte((byte) ((byte) 0*04)); // IE Identifier
ed.appendByte((byte) 4); // IE Data Length
ed.appendByte((byte) 00) ; //Reference Number 1st Octet
ed.appendByte((byte) 00) ; //Reference Number 2nd Octet
try {
ed.appendString(message, Data.ENC_UTF16_BE);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
request.setShortMessage(message,Data.ENC_UTF16);
request.setSourceAddr("sourceAdd");
request.setDestAddr("919865851257");
proc.serverRequest(request);
System.out.println("Message sent.");
try {
generateResult(sourceAdd,"sent");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (WrongLengthOfStringException e) {
System.out.println("Message sending failed ");
event.write(e, "");
}