如何实现在将 SMS 发送到端口 50000 时调用的 MIDlet?

该代码不起作用。手机收不到短信,短信通过模拟器(JAVA Me SDK)发送。

接收短信需要做哪些设置?

我的代码:

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

import java.io.IOException;
import javax.microedition.io.PushRegistry;
import javax.microedition.lcdui.*;
import javax.microedition.midlet.MIDlet;

/**
 * @author bonni
 */
public class Midletsms extends MIDlet implements CommandListener{

    protected Display display;
     //boolean started=false;
      Form form = new Form("Welcome");
      Command mCommandQuit;

    public void startApp() {

        String url = "sms://:50000";
        try {

            PushRegistry.registerConnection(url,this.getClass().getName(), "*");
           // PushRegistry.registerConnection(url,"Midletsms.class", "*");
        } catch (IOException ex) {

        } catch (ClassNotFoundException ex) {

        }
         form.append("This midlet gets invoked when message is sent to port:50000");



             display = Display.getDisplay(this);
             display.setCurrent(form);

                   mCommandQuit = new Command("Quit", Command.EXIT, 0);
             form.addCommand(mCommandQuit);
             form.setCommandListener(this);


    }

    public void pauseApp() {
    }

    public void destroyApp(boolean unconditional) {
    }
     public void commandAction(Command c, Displayable d) {
       // throw new UnsupportedOperationException("Not supported yet.");
         String label = c.getLabel();
        if(label.equals("Quit"))
                {
                        destroyApp(false);
            notifyDestroyed();
                }
     }
}

最佳答案

不确定我是否完全理解这个问题。但是您需要阅读有关 PushRegistry 的信息。

所以推送注册有静态和动态两种。

您给出的代码示例使用动态注册。 您需要至少手动调用此 MIDlet 一次,以便推送注册发生 。 (旁白:在您的示例中,您在 startApp 方法中执行此操作,这是一个非常糟糕的主意!推送注册是一个潜在的阻塞操作,因此不应在诸如 startApp 之类的生命周期方法中完成。您应该在一个新线程)。

另一种方法是静态注册,您可以在 jad 中包含推送信息。推送端口将在安装 MIDlet 时注册,无需运行它。

最后你说



这是什么意思?为了启动应用程序,您需要从另一个 MIDlet(如果需要,可以在同一手机上)在相关端口号上发送 SMS。

关于java-me - 如何实现在 SMS 发送到端口 50000 时调用的 MIDlet....代码不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12394158/

10-10 10:10