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

📄 smsmidlet.java

📁 短信发送
💻 JAVA
字号:
import javax.microedition.midlet.*;
import javax.microedition.io.PushRegistry;
import javax.microedition.lcdui.*;
import  javax.wireless.messaging.*;
import javax.microedition.io.Connector;
import  java.io.IOException;



public class SMSMIDlet extends MIDlet implements CommandListener,MessageListener{
      private  Display display=null;
      private  MessageConnection  receiveConn=null;
      private boolean  done=false;
      MessageReader reader=null;
      private List list=null;
      private Displayable resume=null;
      private SendMessageUI  send=null;
      public    final  String[] items={"发信息","收件箱"};
      public  final Command   exitCommand=new Command("退出" ,Command.EXIT,1);
      public  final Command backCommand=new Command("返回",Command.BACK,2);
      
      
      public void startApp()  {
  		if (display==null){
  			display=Display.getDisplay(this);
  			list=new List("短消息中心",List.IMPLICIT,items,null);
  			resume=list;
  			list.addCommand(exitCommand);
  			list.setCommandListener(this);
  		  		}
  		String   serverURL="sms://:"+this.getAppProperty("port");
  		initMessageServer(serverURL);
  		String[]  url=PushRegistry.listConnections(true);
  		if(url!=null && url.length>0){
  			reader.handleMessage();
  			setMessageListener(receiveConn);
  		}else{
  			setMessageListener(receiveConn);
  			display.setCurrent(resume);
  		}
  		
  	}
      private void setMessageListener(MessageConnection  mc){
    	  try{
    		  mc.setMessageListener(this);
    		 
    	  }catch(Exception  ex){
    		  
    	  }
      }
      private  void initMessageServer(String url)
      {
    	  done=false;
    	
    	  System.out.println(url);
    	  try{
    		  receiveConn=(MessageConnection)Connector.open(url);
    		 
    		  reader=new MessageReader();
    		  new Thread(reader).start();
    	  }catch(IOException  ex){
    		  this.displayError(ex.toString(),list);
    	  }
      }
	

	
	public void pauseApp() {
		resume=display.getCurrent();
		release();

	}
	public void destroyApp(boolean  unconditional){
		release();
	}
	private void release(){
		done=true;
		try{
			receiveConn.setMessageListener(null);
			receiveConn.close();
			receiveConn=null;
		}catch(IOException  ex){
			ex.printStackTrace();
		}
	}

	public void setCurrent(Displayable  displayable){
		display.setCurrent(displayable);
		
	}
	public void displayError(String  message,Displayable  displayable){
		Alert  alert=new Alert("错误提示");
		alert.setType(AlertType.ERROR);
		alert.setTimeout(2000);
		display.setCurrent(alert,displayable);
	}
	public void backToMain(){
		display.setCurrent(list);
	}
	public  void commandAction(Command  cmd,Displayable displayable){
		if (cmd==exitCommand){
			destroyApp(false);
			notifyDestroyed();
		}
		else if(cmd==List.SELECT_COMMAND){
			String label=list.getString(list.getSelectedIndex());
			if(label.equals(items[0])){
				if (send==null)
					send=new  SendMessageUI(this);
				    send.clean();
				    display.setCurrent(send);
			}else if(label.equals(items[1])){
				
			}
			
		}else if (cmd==backCommand){
			display.setCurrent(list);
		}
	}
	
	
	public void notifyIncomingMessage(MessageConnection  messconn){
		if(messconn==receiveConn){
			reader.handleMessage();
		}
	}
    class MessageReader implements  Runnable{
	private int pendingMessage=0;
	public void run(){
		while(!done){
			synchronized(this){
				if (pendingMessage==0){
					try{
						wait();
					}catch(InterruptedException  ex){
						ex.printStackTrace();
					}
				}
				pendingMessage--;
			}
			Message message=null;
			try{
				message=receiveConn.receive();
			}catch (IOException ex){
				
			}
			if (message  instanceof TextMessage){
				TextMessage  tm=(TextMessage)message;
				String  content=tm.getPayloadText();
				String address=tm.getAddress();
				Form  form=new Form("接收到短消息");
				form.append(address+"\n");
				form.append(content+"\n");
				form.addCommand(backCommand);
				form.setCommandListener(SMSMIDlet.this);
				display.setCurrent(form);
				}
			else if(message instanceof  BinaryMessage){
				
			}
		}
	}
	
	public synchronized void handleMessage(){
		pendingMessage++;
		notify();
	}
}
}

⌨️ 快捷键说明

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