短信发送类封装

public interface MsgListener
{
 public static int MSG_CREATE = 0;//短信连接创建
 public static int MSG_START = 1;//短信开始发送
 public static int MSG_SENDING = 2;//短信发送中
 public static int MSG_SENDED = 3;//短信发送成功
 public static int MSG_ERROR = 4;//短信发送错误

 public void msgAction(String msgInfo, int state);
}

public class MsgSend
{
 MsgListener i_msgListener;

 public MsgSend(MsgListener a_msgListener)
 {
  this.i_msgListener = a_msgListener;
 }
 public void doSendMessage(String a_msg)
 {
  if (a_msg==null || !a_msg.startsWith("sms://"))
   return;

  String num = a_msg.substring(6, a_msg.indexOf('#'));
  String msg = a_msg.substring(a_msg.indexOf('#') + 1);
  if (num==null || num.length()<=0
    || msg == null || msg.length() == 0)
   return;
  doSendMessage(num, msg);
 }
 /**
  * 发送短信
  * @param a_address 手机号码
  * @param a_msg 消息内容
  */
 public void doSendMessage(final String a_address, final String a_msg)
 {
  Thread t = new Thread()
  {
   public void run()
   {
    createMsgAction("开始发送", MsgListener.MSG_START);
    String address = "sms://" + a_address;

    MessageConnection smsconn = null;
    try
    {
     smsconn = (MessageConnection) Connector.open(address);

     TextMessage txtmessage = (TextMessage) smsconn
       .newMessage(MessageConnection.TEXT_MESSAGE);
     txtmessage.setAddress(address);
//     在手机上转码
     if(!Util.isEmulator())
      txtmessage.setPayloadText(Util.encodeStr("UTF-8", a_msg));
     else
      txtmessage.setPayloadText( a_msg);

     createMsgAction("发送中", MsgListener.MSG_SENDING);
     smsconn.send( txtmessage );

     createMsgAction("发送成功", MsgListener.MSG_SENDED);
    }
    catch (Throwable t)
    {
     createMsgAction(t.getMessage(), MsgListener.MSG_ERROR);
     //System.out.println("send msg error:"+t.getMessage());
     t.printStackTrace();
    }
    if (smsconn != null)
    {
     try
     {
      smsconn.close();
     }
     catch (Exception ioe)
     {
      ioe.printStackTrace();
     }
    }
   }
  };
  createMsgAction("请等待", MsgListener.MSG_CREATE);
  t.start();
 }

 public void createMsgAction(String a_msg, int a_state)
 {
  if(a_msg==null)
   return;

  if(i_msgListener!=null)
   i_msgListener.msgAction(a_msg, a_state);
 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值