2012-06-04 122 views
0

如何在从特定端口号接收短信时自动调用/唤醒我的应用程序?我怎样才能在我的设备上检查这个任何演示端口号码是否可以试用?J2ME短信通知服务

+0

你试过了吗? – Lucifer

+0

还没有,因为我没有任何端口号来接收来自特定端口的消息。 – jayesh

+0

意味着??我没有得到你 – Lucifer

回答

4

就学习贯彻下面的代码段,

有关特定端口

public class SendMessage 
{ 
    public static void execute(final String destination, final String port, final String message) 
    { 
     Thread thread = new Thread(new Runnable() 
     { 
      public void run() 
      { 
       MessageConnection msgConnection; 
       try 
       { 
        msgConnection = (MessageConnection)Connector.open("sms://"+destination+":" + port); 
        TextMessage textMessage = (TextMessage)msgConnection.newMessage(
          MessageConnection.TEXT_MESSAGE); 
        textMessage.setPayloadText(message); 
        msgConnection.send(textMessage); 
        msgConnection.close(); 
       } 
       catch (IOException e) 
       { 
        e.printStackTrace(); 
       } 
      } 
     }); 

     thread.start(); 
    } 
} 

上发送短信有关特定端口读短信

//线程听消息

public class ListenSMS extends Thread 
{ 
    private MessageConnection msgConnection; 
    private MessageListener listener; 
    private String port; 

    public ListenSMS(String port, MessageListener listener) 
    { 
     this.port = port; 
     this.listener = listener; 
    } 

    public void run() 
    { 
     try 
     { 
      msgConnection = (MessageConnection)Connector.open("sms://:" + port); 
      msgConnection.setMessageListener(listener); 
     } 
     catch (IOException e) 
     { 
      e.printStackTrace(); 
     } 
    } 
} 

//消息到达时

public void notifyIncomingMessage(MessageConnection conn) 
{ 
    Message message; 
    try 
    { 
     message = conn.receive(); 
     if (message instanceof TextMessage) 
     { 
        // here you invoke your application 
      TextMessage tMessage = (TextMessage)message; 
      formReceiver.append("Message received : "+tMessage.getPayloadText()+"\n"); 
     } 
     else 
     { 
      formReceiver.append("Unknown Message received\n"); 
     } 
    } 
    catch (InterruptedIOException e) 
    { 
     e.printStackTrace(); 
    } 
    catch (IOException e) 
    { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
}