📄 pushmessage.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 + -