SMS PDU формат - как да извлечете част от съобщението

Как мога да извлека съобщение от SMS PDU?

Трябва да взема съобщение от SMS PDU. Когато използвам някои онлайн услуги, те работят добре. Например тук - http://www.diafaan.com/sms-tutorials/gsm-modem-tutorial/online-sms-pdu-decoder/ - съобщението от PDU 0791448720003023240DD0E474D81C0EBB010000111011315214000BE474D81C0EBB5DE3771B е diafaan.com.

Намерих някои реализации на SMS PDU Java за извършване на PDU->Text преобразуване, но изглежда, че не работят, както очаквах, защото не извличам част от съобщението от целия PDU (с други думи, не изрязвам информацията за услугата - От, SMSC ...) - как мога да направя това на Java? Или просто един алгоритъм също би бил от голяма помощ. Благодаря!


person another-programmer    schedule 24.08.2015    source източник


Отговори (1)


Накрая използвах библиотека 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!");
                ...
            }
person another-programmer    schedule 26.08.2015
comment
Може да се направи дори по-добре - има getDecodedText метод в PduUtils - person another-programmer; 26.08.2015