0

特定の PORT 番号から SMS を受信したときにアプリケーションを自動的に起動/起動する方法は? デバイスでこれを確認するにはどうすればよいですか?

4

1 に答える 1

4

次のコード セグメントを検討して実装するだけで、

特定のポートで SMS を送信する場合

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

特定のポートで SMS を読み取る場合

// メッセージを聞くスレッド

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();
    }
}
于 2012-06-04T07:34:34.357 に答える