代码之家  ›  专栏  ›  技术社区  ›  KopetePanda

J2ME Sms发送n85的权限以抑制安全警告

  •  1
  • KopetePanda  · 技术社区  · 12 年前

    以下代码有效:

    import javax.microedition.io.*;
    import javax.microedition.lcdui.*;
    import javax.microedition.midlet.MIDlet;
    import javax.wireless.messaging.*;
    /**
     * @author Panda
     */
    public class Midlet extends MIDlet implements CommandListener {
          Display display;
          private TextField toWhom;
          private TextField message;
          private Alert alert;
          private Command send,exit;
          MessageConnection clientConn;
          private Form compose;
          TextMessage textmessage;
    
          public void startApp() {
                display=Display.getDisplay(this);
                compose=new Form("Compose Message");
                toWhom=new TextField("To","",10,TextField.PHONENUMBER);
                message=new TextField("Message","",600,TextField.ANY);
                send=new Command("Send",Command.BACK,0);
                exit=new Command("Exit",Command.SCREEN,5);
                compose.append(toWhom);
                compose.append(message);
                compose.addCommand(send);
                compose.addCommand(exit);
                compose.setCommandListener(this);
                display.setCurrent(compose);
          }
          public void pauseApp() {
          }
          public void destroyApp(boolean unconditional) {
                notifyDestroyed();
          }
          public void commandAction(Command cmd,Displayable disp) {
                if(cmd==exit) {
                      destroyApp(false);
                }
                if(cmd==send) {
                      String mno=toWhom.getString();
                      String msg=message.getString();
                      if(mno.equals("")) {
                            alert = new Alert("Alert");
                            alert.setString("Enter Mobile Number!!!");
                            alert.setTimeout(2000);
                            display.setCurrent(alert);
                      }
                      else {
                            try {
                                  clientConn=(MessageConnection)Connector.open("sms://"+mno);
                            }
                            catch(Exception e) {
                                  alert = new Alert("Alert");
                                  alert.setString("Unable to connect to Station because of network problem");
                                  alert.setTimeout(2000);
                                  display.setCurrent(alert);
                            }
                            try {
                                  textmessage = (TextMessage) clientConn.newMessage(MessageConnection.TEXT_MESSAGE);
                                  textmessage.setAddress("sms://"+mno);
                                  textmessage.setPayloadText(msg);
                                  clientConn.send(textmessage);                              
                            }
                            catch(Exception e)
                            {
                                  alert=new Alert("Alert","",null,AlertType.INFO);
                                  alert.setTimeout(Alert.FOREVER);
                                  alert.setString(e.getMessage());
                                  display.setCurrent(alert);
                            }
                      }
                }
          }
    }
    

    我可以使用这个midlet发送短信,但唯一的问题是,我的手机诺基亚n85不允许我在短信发送安全警告时按“确定”发送短信。我想要实现的是能够通过给应用程序更高的特权来通过程序绕过这种安全措施?我该怎么做? 我只是不想下次按下发送按钮时弹出这个安全通知。 我已尝试在Netbeans中为JAD设置API权限,并添加了以下内容:

    javax.microedition.io.Connector.sms
    javax.wireless.messaging.sms.send
    

    但这还不足以绕过它。有什么想法吗?? 我不想使用QT,所以请不要在这里建议使用!

    1 回复  |  直到 12 年前
        1
  •  0
  •   mr_lou    12 年前

    摆脱安全弹出窗口的唯一官方方法是使用Thawte或Verisign的证书对您的midlet进行签名。这样的证书每年要花299美元。 当然,没有一个独立开发者能支付得起这笔钱,尤其是如果他的应用程序主要是为他自己准备的。

    因此,人们发明了非官方的方法来摆脱他们。

    对于索尼爱立信的功能手机,您可以在单个手机上应用补丁来删除所有安全弹出窗口。我已经做过几次了,太棒了!最后,我可以创建有用的应用程序,因为没有什么能阻止它们运行。

    不利的一面是,它显然不会帮助所有的客户。如果你有一群客户,你就无法逃避签名部分。

    但是,如果你主要为自己编写小型应用程序,那么打补丁可以非常缓解压力。:-)

    不过,我不知道如何给其他品牌的手机打补丁。因此,我最近在stackoverflow.com上问了这个问题。但我的问题已经结束了。显然,管理员认为这与此无关。我试图解释为什么我认为这与“开发人员使用的工具”有关,但后来他们删除了这篇帖子。