nokiacoding.java
来自「实现串口手机短信发送程序很全面的源代码」· Java 代码 · 共 157 行
JAVA
157 行
package com.sunfruit.comm.test;
import java.io.*;
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2005</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
public class NokiaCoding {
private String phone = "";
public NokiaCoding() {
//System.out.println(getSendNumber("8613520593659"));
///System.out.println(getASCII("这是123"));
}
/**
* 将字符串转换为16进制
* @param str1 String
* @return String
*/
public 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();
// retstr += (int) chars[j];
}
// try {
// byte[] bytes=strtemp.getBytes("US-ASCII");
// for (int j = 0; j <bytes.length; j++) {
// retstr += Integer.toHexString(bytes[j]).toUpperCase();
// }
//
// } catch (UnsupportedEncodingException ex) {
// ex.printStackTrace();
// }
}
return retstr;
}
public static String byteHEX(byte ib) {
char[] Digit = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'A', 'B', 'C', 'D', 'E', 'F'};
char[] ob = new char[2];
ob[0] = Digit[(ib >>> 4) & 0X0F];
ob[1] = Digit[ib & 0X0F];
String s = new String(ob);
return s;
}
/**
* 将手机号进行转换
* @param str1 String 手机号
* @return String
*/
public String getSendNumber(String str1) {
return getSendNumber(str1, false);
}
/**
* 将手机号进行转换
* @param str1 String 手机号
* @param addtag boolean 是否加86
* @return String
*/
public String getSendNumber(String str1, boolean addtag) {
String retstr = "";
if (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 encode7bit(String src) {
String result = null;
String hex = null;
byte value;
if (src != null && src.length() == src.getBytes().length) {
result = "";
byte left = 0;
byte[] b = src.getBytes();
for (int i = 0, j = 0; i < b.length; i++) {
j = i & 7;
if (j == 0)
left = b[i];
else {
value = (byte) ((b[i] << (8 - j)) | left);
left = (byte) (b[i] >> j);
hex = Integer.toHexString((byte) value);
result += hex;
if (i == b.length - 1)
result += Integer.toHexString(left);
}
}
result = result.toUpperCase();
}
return result;
}
/**
* 获得发送的PDU字符串
* @param from String 发送人手机所在的短信中心的号码
* @param send String 收件人手机号
* @param content String 内容
* @return String
*/
public String getPDUCoding(String from, String send, String content) {
String leng = Integer.toHexString(content.length() / 2).toUpperCase();
if (leng.length() == 1)
leng = "0" + leng;
// String sms="0891"+from+"11000D91"+send+"000804C2"+leng+content;
String address = "0891" + from;
phone = "11000D91" + send + "000800" + leng + content;
//String sms="0011000D91"+send+"000800"+leng+content;
return address + phone;
}
public int getPDULength() {
return phone.length() / 2;
}
public static void main(String[] args) {
new NokiaCoding();
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?