首页 编程 软件学院 查看内容

短信发送机的实现

2009-10-9 09:46 754 0

摘要: 今天早上回来就产生了一个想法,不如用j2me实现一个短信发送机的程序,然后只需要填入几个数字就可以实现短信的自动发送等。经过大概2个小时的奋斗,终于写好了,并且在多部不同品牌的机器运行良好,而且很实用...
关键词: nbsp microedition import TextField javax Command 发送机 MessageConnectio public lcdui

今天早上回来就产生了一个想法,不如用j2me实现一个短信发送机的程序,然后只需要填入几个数字就可以实现短信的自动发送等。经过大概2个小时的奋斗,终于写好了,并且在多部不同品牌的机器运行良好,而且很实用,不过可以有些手机需要数字签名,否则的话,会不停的提示你。郁闷,不过索爱跟三星就可以设置。 /********************************************************************  * 项目名称 :j2me学习  *  * Copyright 2005-2006 Wuhua. All rights reserved  ********************************************************************/ package org.fox.sms; import java.io.IOException; import javax.microedition.io.Connector; import javax.microedition.lcdui.Command; import javax.microedition.lcdui.CommandListener; import javax.microedition.lcdui.Displayable; import javax.microedition.lcdui.Form; import javax.microedition.lcdui.TextField; import javax.wireless.messaging.MessageConnection; import javax.wireless.messaging.TextMessage; /**  * 类名:SMSForm.java  * 编写日期: 2007-5-25  * 程序功能描述:  * Demo:  * Bug:  *  * 程序变更日期 : * 变更作者 : * 变更说明 : *  * @author wuhua [email protected]  */ public class SMSForm extends Form implements CommandListener, Runnable{     Command send = new Command("发送", Command.OK, 1);     Command back = new Command("返回", Command.BACK, Command.BACK);     TextField phone;     TextField content;     TextField num;     TextField timeOut;     TextField text;     String serverPort = "5000";// getAppProperty("serverPort");     int sms;     Menu menu;     public SMSForm(Menu m) {         super("短信发送机");         setCommandListener(this);         text = new TextField("状态", "等待发送短信", 20, TextField.ANY);         phone = new TextField("号码", "xxxxxx:", 20, TextField.NUMERIC);         content = new TextField("指令", "777", 10, TextField.NUMERIC);         num = new TextField("条数", "23", 10, TextField.NUMERIC);         timeOut = new TextField("时间格", "10", 10, TextField.NUMERIC);         this.append(phone);         this.append(content);         this.append(num);         this.append(timeOut);         this.append(text);         this.addCommand(send);         this.addCommand(back);         this.menu = m;     }     public void commandAction(Command c, Displayable arg1) {         if(c == send){             new Thread(this).start();             this.removeCommand(send);         }else{             SMSSenderMIDlet.display.setCurrent(menu);         }     }     public void run() {         int num = Integer.parseInt(this.num.getString());         int sleep = Integer.parseInt(this.timeOut.getString());         while(true){ //            System.out.println(sleep);             if(sms < num){                 senderImpl();             }             else{                 SMSSenderMIDlet.display.setCurrent(menu);                 break;             }             try { //                System.out.println(sleep);                 Thread.sleep(sleep*1000); //                System.out.println(sleep);             } catch (InterruptedException e) {                 e.printStackTrace();             }         }     }     private void senderImpl() {         String addr = "sms://" + phone.getString();         System.out.println("发送地址为:" + addr);         MessageConnection conn;         try {             conn = (MessageConnection) Connector.open(addr);             TextMessage msg = (TextMessage) conn             .newMessage(MessageConnection.TEXT_MESSAGE);             msg.setPayloadText(content.getString());             conn.send(msg);             conn.close();             sms++; //            text = sms+"";             text.setString("成功发送" +this.num.getString() + "第" + sms + "条");         } catch (IOException e) { //            TODO 自动生成 catch 块             e.printStackTrace();         }     } } /********************************************************************  * 项目名称 :j2me学习  *  * Copyright 2005-2006 Wuhua. All rights reserved  ********************************************************************/ package org.fox.sms; import javax.microedition.lcdui.Command; import javax.microedition.lcdui.CommandListener; import javax.microedition.lcdui.Displayable; import javax.microedition.lcdui.List; /**  * 类名:Menu.java  * 编写日期: 2007-5-25  * 程序功能描述:  * Demo:  * Bug:  *  * 程序变更日期 : * 变更作者 : * 变更说明 : *  * @author wuhua [email protected]  */ public class Menu extends List implements CommandListener{     Command send = new Command("打开发送机", Command.OK, 1);     public Menu(String title, int listType) {         super(title, listType);         this.append("打开发送机", null);         this.addCommand(send);         this.setCommandListener(this);     }     public void commandAction(Command c, Displayable d) {         System.out.println("dfsdfsd");         if(c == send){             SMSSenderMIDlet.display.setCurrent(new SMSForm(this));         }else{         }     } } /********************************************************************  * 项目名称 :j2me学习  *  * Copyright 2005-2006 Wuhua. All rights reserved  ********************************************************************/ package org.fox.sms; import java.io.IOException; import javax.microedition.io.Connector; import javax.microedition.lcdui.Choice; import javax.microedition.lcdui.Display; import javax.microedition.midlet.MIDlet; import javax.microedition.midlet.MIDletStateChangeException; import javax.wireless.messaging.MessageConnection; /**  * 类名:SMSSenderMIDlet.java  * 编写日期: 2007-5-25  * 程序功能描述:  * Demo:  * Bug:  *  * 程序变更日期 : * 变更作者 : * 变更说明 : *  * @author wuhua [email protected]  */ public class SMSSenderMIDlet extends MIDlet {     private MessageConnection sconn;     public static Display display;     public SMSSenderMIDlet() {     }     protected void destroyApp(boolean arg0) throws MIDletStateChangeException {         try {             sconn.close();         } catch (IOException e) { //            TODO 自动生成 catch 块             e.printStackTrace();         }     }     protected void pauseApp() {     }     protected void startApp() throws MIDletStateChangeException {         String serverPort = "5000";         try {             sconn = (MessageConnection) Connector.open("sms://:" + serverPort);         } catch (IOException e) {             e.printStackTrace();         }         Menu m = new Menu("短信发送机",Choice.IMPLICIT);         display = Display.getDisplay(this);         display.setCurrent(m);     } }
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部