【问题标题】:J2ME sms notification serviceJ2ME 短信通知服务
【发布时间】:2012-06-08 07:14:03
【问题描述】:

如何在接收到来自特定端口号的短信时自动调用/唤醒我的应用程序?以及如何在我的设备上检查这个是否有可用的演示端口号来尝试这个?

【问题讨论】:

  • 还没有,因为我没有任何端口号来接收来自特定端口的消息。
  • 是什么意思??我没找到你

标签: java-me sms


【解决方案1】:

只需学习并实现以下代码段,

用于在特定端口发送短信

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();
    }
}

【讨论】:

    猜你喜欢
    • 2023-03-06
    • 1970-01-01
    • 2011-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多