⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 smsmsgout.java

📁 排课系统
💻 JAVA
字号:
package org.cross.sms.msg;

import java.util.*;
import java.util.regex.*;

/**
 外发的信息
 */
public class SMSMsgOut extends SMSMsg {
    private Date dispatchDate;
    public static int msgIndicator = 1;
    boolean m_withUserHeader = false;
    int max;
    int no;
    int indication;

    public SMSMsgOut() {
        super(TYPE_OUTGOING, null, null, null, null, -1);
        setSendDate(null);
        setDate(new Date());
    }

    public SMSMsgOut(String recipient, String text) {
        super(TYPE_OUTGOING, new Date(), null, recipient, text, -1);
        if (_CharacterUtil.isContainsChineseChar(text)) {
            this.setMessageEncoding("gsm_unicode");
        }
        setSendDate(null);
        setDate(new Date());
    }

    public void setSendDate(Date date) {
        this.dispatchDate = date;
    }

    public Date getSendDate() {
        return dispatchDate;
    }


    public String getPdu() {
        String pdu = getSMSHeader(); ;
        String str1, str2;
        //准备用户数据部分,包括长度
        if (m_withUserHeader) {
            str2 = this.getDataHeader();
            str2 += getUserDataPdu();
        } else {
            str2 = getUserDataPdu();
        }
        str1 = _CharacterUtil.getPduHexLength(str2, messageEncoding);
        pdu = pdu + str1 + str2;
        return pdu.toUpperCase();
    }

    public String getSMSHeader() {
        String pdu = "";
        TP_Address_SMSC smsc = new TP_Address_SMSC();
        smsc.setPhone(SmsUtil.SMSC_CODE);
        pdu = pdu + smsc.getPdu();
        //判断是否需要增加报头
        TP_FirstOctet first = new TP_FirstOctet();
        first.set(m_withUserHeader, false);
        pdu = pdu + first.getPdu();

        pdu = pdu + "00"; //sms refno
        //目标地址
        TP_Address_Da_Oa da = new TP_Address_Da_Oa();
        da.setPhone(recipient);
        pdu = pdu + da.getPdu();

        pdu = pdu + "00"; //tp_pid

        pdu = pdu + getTCSPdu();
        //tp_pv生命周期
        pdu = pdu + "FF";
        return pdu;
    }

    public String getTCSPdu(){
            //字符集tp_dcs
            TP_Dsc_CharSet encoding = new TP_Dsc_CharSet();
            encoding.setMessageEncoding(messageEncoding);
            return encoding.getPdu();
    }

    public String getDataHeader() {
        TP_UDH h = new TP_UDH();
        //加入sar元素
        TP_UDH_EI_Sar sar = new TP_UDH_EI_Sar();
        sar.max = max;
        sar.no = no;
        sar.refno = indication;
        h.addEI(sar);
        return h.getPdu();
    }

    public String getUserDataPdu() {
        String tmp = _CharacterUtil.stringToHexString(text, messageEncoding);
        if (m_withUserHeader && messageEncoding.equals("gsm_default")) {
            //做一位偏移以保证不支持短信拼接的手机能够收到
            tmp = _CharacterUtil.offsetHexString(tmp, 1);
        }
        return tmp;
    }

    public static void main(String[] args) {
        SMSMsgOut m = new SMSMsgOut("", "liuxk");
        System.out.println(m.getMessageEncoding());
    }

//    private boolean statusReport =false;
//    /**
//     Sets if a status report is requested.
//
//     @param statusReport True if a status report is requested. Default is false (no status report).
//     */
//    public void setStatusReport(boolean statusReport) {
//        this.statusReport = statusReport;
//    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -