在程序中,发送短信息的方式一般有三种:
1、 使用程序在网络上发送短信息,例如各大网站的短信业务。这种方式是通过程序将信息发送给运营商的网关服务器,然后通过运营商的网络发送给手机。
2、 在计算机中,通过数据线连接到手机,然后通过手机来发送短信息。这种方式是通过使用AT指令来实现。爱立信手机的AT指令你可以在以下地址找到: http://mobilityworld.ericsson.com.cn/development/download_hit.asp
3、 通过在手机中运行的程序来发送短信息。这个正是本文实现的方式。
在J2ME中,如果想发送短信息,需要使用WMA包,MIDP2.0中已经包含,MIDP1.0中可以通过厂商提供的扩展API实现,和WMA的类库基本一样。
下面是使用WMA向指定手机号码发送短信息的一个方法,很简单。当然WMA也提供了其他的方式来发送更多的内容。
package
my.util;
import javax.wireless.messaging. * ;
import javax.microedition.io. * ;
/**
* 发送文本短信息的方法
*/
public class SMSUtil
{
/**
* 给指定号码发送短信息
* @param content 短信息内容
* @param phoneNumber 手机号码
* @return 发送成功返回true,否则返回false
*/
public static boolean send(String content,String phoneNumber)
{
boolean result = true ; // 返回值
try
{
String address = " sms://+ " + phoneNumber; // 地址
MessageConnection conn = (MessageConnection)Connector.open(address); // 建立连接
// 设置短信息类型为文本,短信息有文本和二进制两种类型
TextMessage msg = (TextMessage)conn.newMessage(MessageConnection.TEXT_MESSAGE);
msg.setPayloadText(content); // 设置信息内容
conn.send(msg); // 发送
}
catch (Exception e)
{
result = false ;
// 未处理
}
return result;
}
}
import javax.wireless.messaging. * ;
import javax.microedition.io. * ;
/**
* 发送文本短信息的方法
*/
public class SMSUtil
{
/**
* 给指定号码发送短信息
* @param content 短信息内容
* @param phoneNumber 手机号码
* @return 发送成功返回true,否则返回false
*/
public static boolean send(String content,String phoneNumber)
{
boolean result = true ; // 返回值
try
{
String address = " sms://+ " + phoneNumber; // 地址
MessageConnection conn = (MessageConnection)Connector.open(address); // 建立连接
// 设置短信息类型为文本,短信息有文本和二进制两种类型
TextMessage msg = (TextMessage)conn.newMessage(MessageConnection.TEXT_MESSAGE);
msg.setPayloadText(content); // 设置信息内容
conn.send(msg); // 发送
}
catch (Exception e)
{
result = false ;
// 未处理
}
return result;
}
}