在程序中,发送短信息的方式一般有三种:


1、 使用程序在网络上发送短信息,例如各大网站的短信业务。这种方式是通过程序将信息发送给运营商的网关服务器,然后通过运营商的网络发送给手机。

2、 在计算机中,通过数据线连接到手机,然后通过手机来发送短信息。这种方式是通过使用AT指令来实现。爱立信手机的AT指令你可以在以下地址找到:http://mobilityworld.ericsson.com.cn/development/download_hit.asp

3、 通过在手机中运行的程序来发送短信息。这个正是本文实现的方式。

在J2ME中,如果想发送短信息,需要使用WMA包,MIDP2.0中已经包含,MIDP1.0

中可以通过厂商提供的扩展API实现,和WMA的类库基本一样。

下面是使用WMA向指定手机号码发送短信息的一个方法,很简单。当然WMA也提供了其他的方式来发送更多的内容。

//SMSUtil.java
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;
    }
}