1

以下のコードは動作します:

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 を使用してテキスト メッセージを送信できますが、唯一の問題は、私の電話 Nokia n85 では、SMS 送信セキュリティ警告で [OK] を押さないとメッセージを送信できないことです。私が達成したいのは、おそらくアプリケーションにより高い権限を与えることで、このセキュリティ対策をプログラムでバイパスできるようにすることですか? それ、どうやったら出来るの?次に送信ボタンを押したときに、このセキュリティ通知が表示されないようにしたいだけです。JAD の Netbeans で API パーミッションを設定しようとして、以下を追加しました。

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

しかし、それはそれをバイパスするには十分ではありません。誰かアイデアはありますか?? そして、私は QT を使いたくないので、ここで提案しないでください!

4

1 に答える 1

0

セキュリティ ポップアップを取り除く唯一の公式な方法は、Thawte または Verisign からの証明書を使用して midlet に署名することです。このような証明書は、年間 299 ドルかかります。もちろん、特に彼のアプリがほとんど自分のためのものである場合、インディー開発者はその金額を支払う余裕はありません.

そのため、人々はそれらを取り除くための非公式な方法を発明しました.

Sony Ericsson のフィーチャー フォンの場合、個々の電話にパッチを適用して、すべてのセキュリティ ポップアップを削除できます。私はこれを数回やりましたが、素晴らしいです!最後に、実行を妨げるものがないため、便利なアプリを作成できます。

欠点は、明らかにすべての顧客に役立つわけではないということです。たくさんの顧客がいる場合、署名の部分を逃れることはできません。

しかし、主に自分用に小さなアプリをコーディングする場合は、パッチを適用することでストレスが大幅に軽減されます。:-)

ただし、他のブランドの電話にパッチを適用する方法はわかりません。そのため、私は最近、stackoverflow.com でこの質問をしました。しかし、私の質問は閉じられました。どうやら管理者はそれが関連しているとは思わない。「開発者が使用するツール」に関連していると考えた理由を説明しようとしましたが、投稿が削除されました。

于 2013-02-20T06:11:21.107 に答える