⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 receivesmsmsg.java

📁 一个关于J2ME短信开发的源码
💻 JAVA
字号:
import java.io.IOException;

import javax.microedition.io.Connector;
import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.AlertType;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
import javax.wireless.messaging.Message;
import javax.wireless.messaging.MessageConnection;
import javax.wireless.messaging.MessageListener;
import javax.wireless.messaging.TextMessage;

public class ReceiveSMSMsg extends MIDlet 
        implements CommandListener,MessageListener {
	private Display display = null;
    
	/** 退出命令按钮 */
    private Command cmdExit = new Command("退出", Command.EXIT, 1);
    
    /** 否阅读消息 */
    private Command cmdRead = new Command("阅读", Command.SCREEN, 1);
    /** 返回 */
    private Command cmdBack = new Command("返回", Command.BACK, 1);
    
    private Form form = new Form("接收文本信息");
    
    /** 用于接收消息 */
    private MessageConnection mc;
	
    public ReceiveSMSMsg() {
		super();
		
        form.addCommand(cmdExit);
        form.setCommandListener(this);
	}

	protected void startApp() throws MIDletStateChangeException {
        display = Display.getDisplay(this);
        display.setCurrent(form);
        
        //启动消息监听
        startMsgListener();
	}

	protected void pauseApp() {
        close();
	}

	protected void destroyApp(boolean arg0)
		throws MIDletStateChangeException {
	    close();
	}
    
    
    private void close() {
        try {
            mc.setMessageListener(null);
            mc.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        mc =null;
    }
    
    private void startMsgListener() {
        try {
            mc = (MessageConnection)Connector.open
                    ("sms://:5008");
            //注册消息监听器.
            mc.setMessageListener(this);
        } catch (Exception e) {
            System.out.println("不能进行接收消息连接:" + e.toString());
        }
    }
	
    /**
     * 处理命令按钮事件
     */
    public void commandAction(Command c, Displayable s) {
        if (c == cmdExit) {
        	notifyDestroyed();
        } else if (c == cmdRead) {
            //在独立的线程中接收消息
            new Thread() {
                public void run() {
                    Message msg=null;
                    try {
                        msg = mc.receive();
                    } catch (IOException e) {
                        //处理读取消息时发生的错误
                        System.out.println("读取消息时发生异常:" +
                                e.toString());
                    }
                    //处理读取的文本消息
                    if ((msg != null) && (msg instanceof TextMessage)) {
                        TextMessage tmsg = (TextMessage)msg;
                        form.append("接收到一条消息,接收时间:" +
                                tmsg.getTimestamp().toString() + "\n");
                        form.append("消息发送方:" + tmsg.getAddress() + "\n");
                        form.append("消息内容:" + tmsg.getPayloadText());
                    }
                    display.setCurrent(form);
                }
            }.start();
            
        } else if (c == cmdBack) {
            display.setCurrent(form);
        }
    }
    
    /**
     * 当有消息到达时执行该函数
     */
    public void notifyIncomingMessage(MessageConnection mc) {
        if (this.mc == mc) {
            Alert alert = new Alert("收到新消息",
                    "是否阅读?", null,
                    AlertType.CONFIRMATION);
            alert.addCommand(cmdBack);
            alert.addCommand(cmdRead);
            alert.setCommandListener(this);
            alert.setTimeout(Alert.FOREVER);
            display.setCurrent(alert, form);
            AlertType.CONFIRMATION.playSound(display);
        }
    }


}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -