以下のコードは動作します:
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 を使いたくないので、ここで提案しないでください!