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

📄 pushmessage.java~1~

📁 gsm modem 发送短信 闪信 WAP PUSH开发例子
💻 JAVA~1~
字号:
package gsmmodem.message;

import org.jsmsengine.*;
import java.util.*;


public class PushMessage extends COutgoingMessage {

    public PushMessage() {
        super();
        setDate(new Date());
    }

    private String push_url;
    private String text;
    private String mobile;

    public PushMessage(String recipient, String text,String url) {
        super(recipient,text);
        setDate(new Date());
        this.push_url = url;
        this.text = text;
        this.mobile = recipient;
    }

    public String getPDU(String smscNumber){
        String ret = smscNumber;
        String textUTF8 = getUTF8Text(text);
        String urlUTF8  = getUTF8Text(push_url);
        int i_length = 36 + (textUTF8.length() + urlUTF8.length())/2;
        String lengthHex = Integer.toHexString(i_length);
        StringBuffer sb = new StringBuffer();
        sb.append("0051000BA1");
        sb.append(toBCDFormat(mobile));
        sb.append("00F5A7" + lengthHex);
        sb.append("0B05040B8423F00003030101");
        sb.append("29060603AE81EA8DCA");
        sb.append("02056A0045C6080C03");
        sb.append(urlUTF8);
        sb.append("000103");
        sb.append(textUTF8);
        sb.append("000101");
        ret = sb.toString().toUpperCase();
        return ret;
    }

    private static String getUTF8Text(String s) {
        String ret = "";
        try{
            byte[] utf8 = s.getBytes("UTF8");
            ret = bytesToHexStr(utf8).toUpperCase();
        }catch(Exception e){}
        return ret;
    }

    private static String toBCDFormat(String s) {
            String bcd;
            int i;

            if ((s.length() % 2) != 0) s = s + "F";
            bcd = "";
            for (i = 0; i < s.length(); i += 2) bcd = bcd + s.charAt(i + 1) + s.charAt(i);
            return bcd;
    }
    public static final char [] hex = {
         '0', '1', '2', '3', '4', '5', '6', '7',
         '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'
     };

     public static String bytes2hexStr (byte [] arr, int len) {
         StringBuffer sb = new StringBuffer(len*2);
         for (int i=0; i<len; i++) {
             int hi = (arr[i]>>>4) & 0xf;
             sb.append( hex[hi] );
             int low = (arr[i]) & 0xf;
             sb.append( hex[low] );
         }
         return sb.toString();
     }

     public static String bytesToHexStr (byte [] arr) {
         return bytes2hexStr(arr, arr.length);
     }


    public static void main(String[] args){
        String mobile = "13521587943";
        String text =  "测试1";
        String url = "219.238.232.58/a";
        PushMessage pushm = new PushMessage(mobile,text,url);
        String pdu = pushm.getPDU("");
        System.out.println(pdu);
    }

}

⌨️ 快捷键说明

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