首页
社区
课程
招聘
[旧帖] [原创]短信发送机的实现,利用j2me(附上源码)申请个邀请码 0.00雪花
发表于: 2010-5-7 21:36 1642

[旧帖] [原创]短信发送机的实现,利用j2me(附上源码)申请个邀请码 0.00雪花

2010-5-7 21:36
1642
今天早上回来就产生了一个想法,不如用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

* 程序功能描述:

* Demo:

* Bug:

*
* 程序变更日期 :

* 变更作者 :

* 变更说明 :

*
* @author wuhua
[EMAIL="rrq12345@163.com"]rrq12345@163.com[/EMAIL]
*/
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

* 程序功能描述:

* Demo:

* Bug:

*
* 程序变更日期 :

* 变更作者 :

* 变更说明 :

*
* @author wuhua
[EMAIL="rrq12345@163.com"]rrq12345@163.com[/EMAIL]
*/
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

* 程序功能描述:

* Demo:

* Bug:

*
* 程序变更日期 :

* 变更作者 :

* 变更说明 :

*
* @author wuhua
[EMAIL="rrq12345@163.com"]rrq12345@163.com[/EMAIL]
*/
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);

    }

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 355
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
看晕了
2010-5-7 22:25
0
雪    币: 39
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我看不能吧,如果这样,我们早就是会员了
2010-5-7 23:00
0
雪    币: 370
活跃值: (52)
能力值: ( LV13,RANK:350 )
在线值:
发帖
回帖
粉丝
4
http://www.javaeye.com/topic/83164
2010-5-17 16:39
0
雪    币: 32
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
好。。。。。牛叉,一字不漏
2010-5-17 16:47
0
雪    币: 1681
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
itf
6
传说中的垃圾短信群发机器就是这么产生的????
2010-5-17 20:18
0
雪    币: 499
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
的确一样呀
2010-5-17 20:49
0
游客
登录 | 注册 方可回帖
返回
//