ワイヤレスメッセージングAPI(WMA)で動作するアプリケーションをj2meで開発しています。アプリケーションの使命は、2台の携帯電話間でSMSを送受信することです。NetBeansエミュレータでアプリを実行すると正常に動作しますが、Nokia 5200電話で実行すると、携帯電話でこの例外が発生します。
Security java/lang/SecurituException Not allowed to open connection
私のアプリのJADファイルは次のとおりです。
MIDlet-1: Midlet, , hello.Midlet
MIDlet-Jar-Size: 36375
MIDlet-Jar-URL: SinaNetwork.jar
MIDlet-Name: SinaNetwork
MIDlet-Permissions: javax.microedition.io.Connector.sms, javax.wireless.messaging.sms.receive, javax.wireless.messaging.sms.send
MIDlet-Vendor: Vendor
MIDlet-Version: 1.0
MicroEdition-Configuration: CLDC-1.0
MicroEdition-Profile: MIDP-2.0
アプリケーションコードも:
Thread receive=new Thread(new Runnable() {
MessageConnection ms;
public void run() {
// System.out.print("*****************SALAM*******");
try {
ms= (MessageConnection) Connector.open("sms://:"+7000);
// System.out.println("Zoor mizanam Receive konam");
Date zaman=new Date();
long zamanTemp=zaman.getTime();
TextMessage tempmes=(TextMessage) ms.receive();
// System.out.print("SMS receive: "+tempmes.getPayloadText());
Midlet.messageReceived=true;
Midlet.ReceivedThatWeDontKnowIsRandom=tempmes.getPayloadText();
}
catch(SecurityException eds)
{
eds.printStackTrace();
// System.out.print("");
}
catch (IOException ex) {
ex.printStackTrace();
}
}
});
receive.start();
Thread sendmesThread=new Thread(new Runnable() {
public void run() {
try {
MessageConnection mc=(MessageConnection) Connector.open("sms://"+Midlet.smsPhoneNumber+":"+5000);
TextMessage tm=(TextMessage) mc.newMessage(MessageConnection.TEXT_MESSAGE);
// System.out.print("PNF : "+phoneNumberField.getString());
tm.setPayloadText(rd+"-"+phoneNumberField.getString());
mc.send(tm);
// System.out.print("message sent from client on port 5000");
mc.close();
}
catch (IOException ex) {
ex.printStackTrace();
}
}
});
sendmesThread.start();
問題は、アプリケーションがSMSを送受信するための接続を開くことができないことだと思いますが、エミュレーターに問題がないため、理由はわかりません。