程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> J2ME >> 短信發送機的實現

短信發送機的實現

編輯:J2ME
今天早上回來就產生了一個想法,不如用J2ME實現一個短信發送機的程序,然後只需要填入幾個數字就可以實現短信的自動發送等。
經過大概2個小時的奮斗,終於寫好了,並且在多部不同品牌的機器運行良好,而且很實用,不過可以有些手機需要數字簽名,否則的話,會不停的提示你。郁悶,不過索愛跟三星就可以設置。
現在公布源代碼跟按照文件
先讓大家看個圖


Java 代碼
  1. /********************************************************************
  2. * 項目名稱 :J2ME學習
  3. *
  4. * Copyright 2005-2006 Wuhua. All rights reserved
  5. ********************************************************************/
  6. package org.fox.sms;
  7. import Java.io.IOException;
  8. import Javax.microedition.io.Connector;
  9. import Javax.microedition.lcdui.Command;
  10. import Javax.microedition.lcdui.CommandListener;
  11. import Javax.microedition.lcdui.Displayable;
  12. import Javax.microedition.lcdui.Form;
  13. import Javax.microedition.lcdui.TextFIEld;
  14. import Javax.wireless.messaging.MessageConnection;
  15. import Javax.wireless.messaging.TextMessage;
  16. /**
  17. * 類名:SMSForm.Java
  18. * 編寫日期: 2007-5-25
  19. * 程序功能描述:
  20. * Demo:
  21. * Bug:
  22. *
  23. * 程序變更日期 :
  24. * 變更作者 :
  25. * 變更說明 :
  26. *
  27. * @author wuhua
    [email protected]
  28. */
  29. public class SMSForm extends Form
  30. implements CommandListener, Runnable{
  31. Command send = new Command("發送", Command.OK, 1);
  32. Command back = new Command("返回", Command.BACK, Command.BACK);
  33. TextFIEld phone;
  34. TextFIEld content;
  35. TextFIEld num;
  36. TextFIEld timeOut;
  37. TextFIEld text;
  38. String serverPort = "5000";// getAppProperty("serverPort");
  39. int sms;
  40. Menu menu;
  41. public SMSForm(Menu m) {
  42. 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);
  • }
  • }
    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved