Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用开放式smpp 3.4发送短消息_Java_Smpp_Opensmpp - Fatal编程技术网

Java 使用开放式smpp 3.4发送短消息

Java 使用开放式smpp 3.4发送短消息,java,smpp,opensmpp,Java,Smpp,Opensmpp,我已经使用smpp 3.4构建了一个发送短消息的应用程序,该应用程序运行良好,但在一些手机中,我收到了以下信息: 无法显示此消息 这是我的函数源代码: public String sendMsg(JsonObject paramsIN) { String smsMessage = paramsIN.getString("body"); String smsDestination = paramsIN.getString("to"); String smsSource =

我已经使用smpp 3.4构建了一个发送短消息的应用程序,该应用程序运行良好,但在一些手机中,我收到了以下信息:

无法显示此消息

这是我的函数源代码:

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默认字符集(包括编码器)。如果您真的需要扩展字符集,请使用UTF-16BE并将数据编码设置为8。

谢谢,这很有效(y)。我在我的代码
request.setShortMessage(smsMessage,Data.ENC_UTF16_BE)中添加了这个;请求.setDataCoding((字节)0x08)
Hi-teppic感谢您的解决方案,但我还有一个问题,在其他一些智能手机中,如“三星galaxy g1 ace”,我有一条消息“内容不受支持”