短信PDU格式——如何提取短信部分



如何从SMS PDU中提取消息?

我需要从SMS PDU中获取消息。当我使用一些在线服务时,它们工作得很好。例如:- http://www.diafaan.com/sms-tutorials/gsm-modem-tutorial/online-sms-pdu-decoder/-来自PDU 0791448720003023240DD0E474D81C0EBB010000111011315214000BE474D81C0EBB5DE3771B的消息是diafaan.com

我发现一些短信PDU Java实现做PDU->Text转换,但似乎他们没有工作,因为我不提取消息部分从整个PDU(换句话说,我不削减服务信息-从,SMSC…)-所以我怎么能做到这一点在Java上?或者只是一个算法也会有很大的帮助。谢谢!

最后我使用了SMSLib库:

            //String resultMessage = ...
            Pdu pdu = new PduParser().parsePdu(resultMessage);
            byte[] bytes = pdu.getUserDataAsBytes();
            String decodedMessage;
            int dataCodingScheme = pdu.getDataCodingScheme();
            if (dataCodingScheme == PduUtils.DCS_ENCODING_7BIT) {
                decodedMessage = PduUtils.decode7bitEncoding(null, bytes);
            } else if (dataCodingScheme == PduUtils.DCS_ENCODING_8BIT) {
                decodedMessage = PduUtils.decode8bitEncoding(null, bytes);
            } else if (dataCodingScheme == PduUtils.DCS_ENCODING_UCS2) {
                decodedMessage = PduUtils.decodeUcs2Encoding(null, bytes);
            } else {
                log.error("Unknown DataCodingScheme!");
                ...
            }

最新更新