【J2ME】J2ME发送短信(单发与伪群发)
2012-06-01 14:39
197 查看
发送短信的关键代码如下:
以下是我写的一个工具类,可以调用sendSMS方法进行单发或者伪群发,参数里用到了一个自定义的监听器ISMSSenderListener ,该监听器给调用者提供回调,以便让调用者了解发送状态,码上:
MessageConnection mconn = null; try { mconn = (MessageConnection) Connector.open("sms://+8618688880000"); TextMessage m = (TextMessage) mconn .newMessage(MessageConnection.TEXT_MESSAGE); m.setAddress("sms://+8618688880000"); m.setPayloadText("短信内容"); mconn.send(m); } catch (Exception e) { e.printStackTrace(); } finally { try { mconn.close(); } catch (IOException e) { e.printStackTrace(); } }
以下是我写的一个工具类,可以调用sendSMS方法进行单发或者伪群发,参数里用到了一个自定义的监听器ISMSSenderListener ,该监听器给调用者提供回调,以便让调用者了解发送状态,码上:
import java.io.IOException; import javax.microedition.io.Connector; import javax.wireless.messaging.MessageConnection; import javax.wireless.messaging.TextMessage; /** * 发短信助手 * * @author Denger * */ public class SMSHelper { private static final String TAG = "SMSHelper"; /** * 发送SMS * * @param lsn * 短信发送监听器 * @param number * 手机号码,不需要加“+86” * @param msg * 短信内容 */ public static void sendSMS(final ISMSSenderListener lsn, final String number, final String msg) { new Thread() { public void run() { send(lsn, number, msg); }; }.start(); } /** * 发送SMS * * @param lsn * 短信发送监听器 * @param numbers * 手机号码数组 * @param msg * 短信内容 */ public static void sendSMS(final ISMSSenderListener lsn, final String[] numbers, final String msg) { new Thread() { public void run() { for (int i = 0; i < numbers.length; i++) { send(lsn, numbers[i], msg); try { sleep(500); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }.start(); } /** * 格式化手机号码:如果传入的手机号码前面加了“+86”,则去掉 * * @param number * @return */ public static String formatNumber(String number) { if (number.startsWith("+86")) { return number.substring(3); } return number; } private static void send(ISMSSenderListener lsn, String number, String msg) { MessageConnection mconn = null; String addr = "sms://+86"; try { number = formatNumber(number); addr += number; lsn.onSendStateChange(addr, ISMSSenderListener.SENDING); Log.d(TAG, "发送短信,地址:" + addr); mconn = (MessageConnection) Connector.open(addr); TextMessage m = (TextMessage) mconn .newMessage(MessageConnection.TEXT_MESSAGE); m.setAddress(addr); m.setPayloadText(msg); mconn.send(m); lsn.onSendStateChange(addr, ISMSSenderListener.SENDOVER); Log.d(TAG, "发送短信,结束"); } catch (Exception e) { e.printStackTrace(); lsn.onSendStateChange(addr, ISMSSenderListener.SENDERROR); Log.e(TAG, "发送出错:" + e.getMessage()); } finally { try { mconn.close(); } catch (IOException e) { e.printStackTrace(); } } } }
/** * SMS发送的监听器 * * @author Denger * */ public interface ISMSSenderListener { /** * 正在发送 */ public static final int SENDING = 0; /** * 发送结束 */ public static final int SENDOVER = 1; /** * 发送出错 */ public static final int SENDERROR = -1; /** * SMS发送时的回调 * * @param state * 返回发送的状态,详见本接口的常量 */ void onSendStateChange(String num, int state); }
相关文章推荐
- Android群发短信草稿保存与发送机制
- LumiSoft.Net,IMAP,邮件发送,邮件单发,邮件线程群发,Winfrom部分控件功能大汇总
- 利用j2meAPI发送短信示例
- j2me发送和捕获短信
- android发送短信的两种方式,发送长短信的两种方式,群发短信
- 短信发送--Mms短信群发实现原理
- Android发送短信(短信发送以及群发和从电话本选择联系人)---短信管家2
- j2me发送短信在多普达上的问题一
- 发送邮件(单发群发的解决方案)
- J2ME 发送短信
- J2ME 模拟短信发送界面开发程序
- java mail发送邮件(单发和群发)
- J2ME:模拟短信发送界面
- Android-->发送短信页面实现(短信发送以及群发和从电话本中选择联系人)-----------》2
- J2Me编写发送短信
- J2Me编写界面发送短信
- javaMail发送邮件(支持单发、群发)
- J2ME发送短信防止死锁提示的解决方法
- 使用J2ME发送手机短信
- 使用J2ME发送手机短信