使用open smpp 3.4发送短信
sending short messages using open smpp 3.4
我已经构建了一个使用 smpp 3.4 发送短消息的应用程序并且运行良好,但在某些手机上我收到了这条消息:
Can not display this message
这是我的函数源代码:
public String sendMsg(JsonObject paramsIN) {
String smsMessage = paramsIN.getString("body");
String smsDestination = paramsIN.getString("to");
String smsSource = paramsIN.getString("from");
String smscNAME = paramsIN.getString("smsc");
SubmitSM request = new SubmitSM();
SubmitSMResp response;
Session session;
try {
request.setSourceAddr(smsSource);
request.setDestAddr(smsDestination);
request.setShortMessage(smsMessage, "UTF-8");
request.setRegisteredDelivery((byte) 3);
request.setDataCoding((byte) 4); // 4
request.assignSequenceNumber(true);
response = ((Session) sd.get(smscNAME)).submit(request);
logger.info("Submit response " + response.debugString());
String messageId = response.getMessageId();
BigInteger bigInt = new BigInteger(messageId, 16);
return bigInt+"";
} catch (WrongLengthOfStringException e) {
logger.error(e);
return null;
} catch (PDUException e) {
logger.error(e);
return null;
} catch (TimeoutException e) {
logger.error(e);
return null;
} catch (WrongSessionStateException e) {
logger.error(e);
return null;
} catch (IOException e) {
logger.error(e);
return null;
}
}
请有人帮助我,谢谢
将数据编码设置为 0(网络默认值)并使用您的提供商支持的任何字符集对正文进行编码。如果您必须猜测,请使用 GSM 默认字符集(jcharset 包括编码器)。如果您确实需要扩展字符集,请使用 UTF-16BE 并将数据编码设置为 8。
我已经构建了一个使用 smpp 3.4 发送短消息的应用程序并且运行良好,但在某些手机上我收到了这条消息:
Can not display this message
这是我的函数源代码:
public String sendMsg(JsonObject paramsIN) {
String smsMessage = paramsIN.getString("body");
String smsDestination = paramsIN.getString("to");
String smsSource = paramsIN.getString("from");
String smscNAME = paramsIN.getString("smsc");
SubmitSM request = new SubmitSM();
SubmitSMResp response;
Session session;
try {
request.setSourceAddr(smsSource);
request.setDestAddr(smsDestination);
request.setShortMessage(smsMessage, "UTF-8");
request.setRegisteredDelivery((byte) 3);
request.setDataCoding((byte) 4); // 4
request.assignSequenceNumber(true);
response = ((Session) sd.get(smscNAME)).submit(request);
logger.info("Submit response " + response.debugString());
String messageId = response.getMessageId();
BigInteger bigInt = new BigInteger(messageId, 16);
return bigInt+"";
} catch (WrongLengthOfStringException e) {
logger.error(e);
return null;
} catch (PDUException e) {
logger.error(e);
return null;
} catch (TimeoutException e) {
logger.error(e);
return null;
} catch (WrongSessionStateException e) {
logger.error(e);
return null;
} catch (IOException e) {
logger.error(e);
return null;
}
}
请有人帮助我,谢谢
将数据编码设置为 0(网络默认值)并使用您的提供商支持的任何字符集对正文进行编码。如果您必须猜测,请使用 GSM 默认字符集(jcharset 包括编码器)。如果您确实需要扩展字符集,请使用 UTF-16BE 并将数据编码设置为 8。