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

📄 pdudataformat.java

📁 实现串口手机短信发送程序很全面的源代码
💻 JAVA
字号:
package com.sunfruit.comm.util;

/**
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2005</p>
 *
 * <p>Company: </p>
 *
 * @author not attributable
 * @version 1.0
 */
public class PDUDataFormat {

    private static String phone="";

    public PDUDataFormat() {
    }

    /**
     * 获得发送的PDU字符串
     * @param from String 发送人手机所在的短信中心的号码
     * @param send String 收件人手机号
     * @param content String 内容
     * @return String
     */
    public static String getPDUCoding(String send, String contentHex) {
        String leng = getIntToHex(contentHex.length() / 2).toUpperCase();

        String lengHex=getIntToHex(send.length()).toUpperCase();

        String use86="";
        if (GetResource.getCenterNumber().isUse86())
            use86="91";
        else
            use86="81";

        String str1="11";
        String str2="08";

        phone = str1+"00"+lengHex+use86 + getSendNumber(send,false) + "00"+str2+"00" + leng + contentHex;
        return getCenterNumber() + phone;
    }

    private static String getCenterNumber() {

        return "0891" + getSendNumber(GetResource.getCenterNumber().getCenternumber(),true);

    }
    /**
     * 将字符串转换为16进制
     * @param str1 String
     * @return String
     */
    public static String getASCII(String str1) {
        String retstr = "";

        for (int i = 0; i < str1.length(); i++) {
            String strtemp = str1.substring(i, i + 1);
            char[] chars = strtemp.toCharArray();
            for (int j = 0; j < chars.length; j++) {
                if (strtemp.getBytes().length == 1) {
                    retstr += "00";
                }
                retstr += Integer.toHexString(chars[j]).toUpperCase();
            }
        }
        return retstr;
    }

    /**
     * 将手机号进行转换
     * @param str1 String 手机号
     * @param addtag boolean 是否加86
     * @return String
     */
    private static String getSendNumber(String str1,boolean addtag) {
        String retstr = "";

        if (GetResource.getCenterNumber().isUse86() || addtag)
            str1 = "86" + str1;

        str1 += "F";
        for (int i = 0; i < str1.length(); ) {
            String strtemp = str1.substring(i, i + 2);
            retstr += strtemp.substring(1, 2) + strtemp.substring(0, 1);
            i += 2;
        }

        return retstr;
    }

    public static String getIntToHex(int i)
    {
        String leng=Integer.toHexString(i);
        if (leng.length() == 1)
            leng = "0" + leng;
        return leng;
    }

    public static int getPDULength() {
        return phone.length() / 2;
    }

}

⌨️ 快捷键说明

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