`

简单的手机发短消息工具类:SMSSender.java

    博客分类:
  • j2me
阅读更多
用法:
String add=address.getString();
String con=content.getString();
SMSSender smsSender = SMSSender.getSMSSender();
smsSender.setMessageText(add,con);
Thread t = new Thread(smsSender);
t.start();

import java.io.IOException;

import javax.microedition.io.Connector;
import javax.wireless.messaging.MessageConnection;
import javax.wireless.messaging.TextMessage;

/**
 * File Name  : SMSSender.java
 * Created on : 2005-4-28
 * Summary	  : A standalone thead, which is used to send SMS.
 * Author	  : Jedi Chen
 */

public final class SMSSender implements Runnable
{   

  // the string stores the text message that will be sent.
  private String message;
  // the destination address for current SMS sender.
  private String address;

  // boolean variable indicates whether the SMS has been sent successfully.
  // initialized as false when get the singleton instance.
  private static boolean doSuccessfully;

  // boolean variable indicates whether error occured while sending SMS.
  // initialized as false when get the singleton instance.
  private static boolean errorOccured;

  // the singleton instance of SMSSender, since one instance is enough
  // for one MIDlet, we apply the Singleton pattern for this class.
  private static SMSSender instance;

  /**
   * the Factory method to get the singleton instance.
   */
  public static SMSSender getSMSSender() {
    if (instance == null) {
    	instance = new SMSSender();
    } else {
    	instance.reset();
    }

    return instance;
  }

  /**
   * The private constructor for SMSSender, only could be called
   * by getSMSSender.
   *
   * call resetSenderStatus() to reset the members.
   */
  private SMSSender() {
    reset();
  }
  /**
   * Once the caller get the sender status, it must
   * call this method to reset both status.
   */
  private void reset() {
	doSuccessfully = false;
	errorOccured = false;
    address = null;
    message = null;
  }

  public synchronized void setMessageText(String address, String message) {

    // assert(address != null && !address.equals(""));
    this.address = "sms://" + address;

    if(message == null || message.equals(""))
    	message = "[WARN] Error formatted message!";
    
    this.message = message;
//    System.out.println("[SMS] " + s);
//    m_fDoSuccessfully = false;
//    m_fErrorOccured = false;
  }

  /*
   * Send the message in a standalone thread.
   *
   * @see java.lang.Runnable#run()
   */
  public void run() {
    MessageConnection smsconn = null;
    try {
      smsconn = (MessageConnection) Connector.open(address);

      TextMessage txtmsg = (TextMessage) smsconn.newMessage(MessageConnection.TEXT_MESSAGE);
      txtmsg.setPayloadText(message);
      
      smsconn.send(txtmsg);

      doSuccessfully = true;
//      System.out.println("[SMS] SMS sent successfully :)");
    } catch (Exception expt) {
    	errorOccured = true;
//      System.out.println("[SMS] SMS sent error!");
    } finally {
      if (smsconn != null) {
        try {
          smsconn.close();
        } catch (IOException ioex) {
//          System.out.println("[SMS] Close SMS connection error caught!");
        }
      }
    }
  }

  /**
   * @return Returns the doSuccessfully.
   */
  public static synchronized boolean isDoSuccessfully() {
    return doSuccessfully;
  }
  /**
   * @return Returns the errorOccured.
   */
  public static synchronized boolean isErrorOccured() {
    return errorOccured;
  }
  
}
分享到:
评论

相关推荐

    SMS_Sender.rar_SMSSender._SMS_Sender_mscomm_sms_sms sender

    自己编写的通过串口发送短信的源代码,使用MSCOMM控件,速度快,稳定!

    Sms sender

    这个类的主要功能是与SMS服务器建立连接,执行用户验证,并将短信发送到指定的手机号码。在本文中,我们将深入探讨这个类库的工作原理、关键功能以及如何在实际项目中应用。 首先,让我们理解一下类库的基础概念。...

    短信猫java开发包JindiSMS-v3.1-demo.zip

    1. **源代码**:Java源文件,包含了与短信猫交互的类和方法,如`SmsSender.java`用于发送短信,`SmsReceiver.java`用于接收短信,以及配置文件如`config.properties`存储API密钥和设置。 2. **API文档**:可能是一个...

    java j2me接收,发送短信

    Java J2ME(Java Micro Edition)是Java平台的一个子集,专为资源有限的设备,如移动电话和嵌入式系统设计。在这个场景下,我们关注的是如何在J2ME环境中实现短信的接收和发送功能。以下是这两个核心知识点的详细...

    sms:java短信发送所需jar包以及源码

    作为一个程序员,了解一些相关的这种技术也是必不可少的,此源码可以用java代码实现发送短信的功能,当然,首先得有账号和秘钥,可以到说明上去注册,java实现短信功能相信很快就会是你所拥有的知识。

    网建短信包(Java).7z

    【标题】"网建短信包(Java)"是一个与Java编程相关的资源包,它可能是用于构建网络建设中的短信发送功能的代码库或者工具集合。在Java开发中,短信服务通常用于验证用户身份、发送通知或者进行营销活动。这个压缩包...

    利用Google日历发送短信源码 Java

    1. `GoogleCalendarAPI.java`:实现Google Calendar API的Java类,包括OAuth 2.0认证和事件操作。 2. `SmsSender.java`:处理短信发送逻辑,可能包含对接第三方短信服务的代码。 3. `main.java`:主程序,整合Google...

    java给手机发短信

    总结:Java发送短信主要涉及与第三方服务商的API交互,理解并正确使用SDK是关键。同时,为了提高系统的可用性和扩展性,可以封装成服务接口,提供给其他系统调用。记得在实际操作中,要考虑异常处理、日志记录以及...

    飞鸽短信平台 API接口实现 [VB6源代码]

    4. `SMSSender.vbp`:VB6的工程文件,存储了项目的基本信息,如引用的库、使用的模块、工程组成员等。 5. `MSSCCPRJ.SCC`:这是版本控制系统的配置文件,通常与Visual SourceSafe等工具关联,用于管理项目源代码的...

    java实现给指定手机号码发送文字短信

    在Java编程环境中,发送短信至指定手机主要涉及网络通信和HTTP请求的知识。下面将详细讲解这一过程中的关键技术和步骤...通过阅读和分析这些文件,可以更深入地了解如何在Java中实现给指定手机号码发送文字短信的功能。

    blackberry sms

    Blackberry SMS(短消息服务)是指在Blackberry设备上发送和接收文本消息的功能。在这个特定的上下文中,我们讨论的是一个针对8830型号手机的短信软件,该软件仅适用于GSM网络环境,而在CDMA网络环境下可能无法正常...

    java阿里云短信服务.rar

    Java整合阿里云短信服务是将Java应用程序与阿里云的短信服务接口进行对接,以便通过编程方式发送短信。本文将深入探讨这一过程中的关键知识点,并提供详细的步骤和代码示例。 首先,我们需要了解阿里云的短信服务。...

    java邮箱和手机发送链接和验证码

    下面将详细讲解这些知识点。 首先,`java邮箱和手机发送...理解并掌握这些概念和工具,对于开发涉及用户验证的Java应用至关重要。在实际项目中,还需要考虑错误处理、异常捕获以及安全措施,以提供稳定且安全的服务。

    java发送邮件和发送短信代码

    3. **创建消息**:使用`MimeMessage`类创建邮件消息,设置发件人、收件人、主题和邮件内容。 4. **发送邮件**:通过`Transport.send()`方法发送邮件。 ```java import javax.mail.*; import javax.mail.internet.*;...

    C# 发短信 接口和DLL

    本文将深入探讨“C#发短信接口和DLL”这一主题,旨在帮助开发者理解和实现通过C#发送短信的功能。 首先,我们需要了解什么是接口(Interface)。在C#中,接口定义了一组方法签名,但不包含任何实现。它允许类或...

    Android遍历手机短信并发送至指定邮箱(可直接运行)

    - SMSSender项目中可能包含了一个名为`SMSSender.java`的类,实现了上述逻辑。具体实现方式会包括定义函数如`sendEmailWithSmsContent()`,在其中完成短信的读取和邮件的发送。 8. **调试与测试**: - 真实设备或...

    java发送手机短信例子及jar包

    在Java编程中,发送手机短信是一项常见的需求,例如在验证码验证、通知服务或者营销活动中。这个例子和相关的jar包提供了一种实现方式。下面将详细解释如何使用Java进行手机短信发送,以及涉及到的关键技术和库。 ...

    java实现调用短信接口发送短信demo

    然后,我们创建一个Java类,编写发送短信的代码。以下是一个基本的示例: ```java import com.aliyuncs.DefaultAcsClient; import com.aliyuncs.IAcsClient; import ...

    java实现cmpp协议开发代码

    Java实现CMPP协议开发代码主要涉及的是中国移动通信的CMPP(China Mobile Packet Protocol)协议,该协议主要用于短信中心(SMSC)与短信网关(SP)之间的数据传输,包括发送短消息、接收短消息以及相关的控制功能。...

Global site tag (gtag.js) - Google Analytics