2012-12-28 85 views
1

在我的j2me應用程序中,我收到上面的異常(java.lang.securityException not allowed to open connection)。我的函數的流程就像首先我在構造函數中打開接收消息的套接字,然後發送SMS,我在方法體中打開端口,在我的手機上MIDlet請求許可發送SMS,如果按NO,它會顯示安全性異常短信發送沒有被拒絕,沒關係。但是當它們在同一個MIDlet中並且第二次執行這個動作時,它在構造函數中打開接收端口時會產生異常,如java.lang.securityException not allowed to open connection。目前我還沒有看到任何允許第二次發送短信的權限。我的構造函數和短信發送代碼如下:java.lang.securityException不允許打開連接j2me

//Constructor 
    public ServerContactRetriever(MainMidlet parent, Language lang) { 
     try { 
      this.language = lang; 
      this.parent = parent; 
      recvCon = (MessageConnection) Connector.open(RECV_URL);    //open receiving port 
      recvCon.setMessageListener(this); 
     } catch (Exception ex) { 
      parent.dispErrorMessage(language.access_denied_disp); 
      parent.alertShow(language.access_denied_alert); 
     } 
    } 

//METHOD 
//Request restore contacts from server 
private void sendRestoreRequest() { 
    try { 
     MessageConnection msgCon = (MessageConnection) Connector.open(SEND_URL); 
     TextMessage msg = (TextMessage) msgCon.newMessage(MessageConnection.TEXT_MESSAGE); 
     msg.setAddress(SEND_URL); 
     msg.setPayloadText("set payload here"); 
     msgCon.send(msg); 
     msgCon.close(); 
    } catch (Exception ex) { 
     try { 
      parent.alertShow(language.sms_error_alert); 
      parent.dispErrorMessage(language.sms_error_disp); 
      recvCon.close(); 
     } catch (Exception ex1) { 
     } 
    } 
} 

我正在使用WTK和MIDP 2.0。 檢查諾基亞設備。 首先我想知道可能會有關閉MessageConnection端口的問題,但我也嘗試過,並且顯示相同的錯誤。而關於短信發送和我選擇否,它工作正常,如果我只是嘗試發送短信,並選擇沒有多少次,我想要的,它仍然留在midlet沒有任何例外。謝謝

回答

0

關閉MessageConnection沒有問題。在某些s40和Symbian手機(如X2-02)中,只有一次整個會話纔會被要求提供許可。如果選擇「是」,則在第二次連接時不會再次問你。它會直接連接。同樣,如果在第一次連接時選擇「否」,則在每次嘗試連接時都不允許連接(將引發安全性異常)。

在某些諾基亞手機,你可能會看到這個選項,

選擇應用程序 - >選項 - >應用程序訪問 - >通訊 - > 1.每次詢問 2.第一次詢問 3.總是允許 4.不允許。

你可以選擇一個適合你的。

如果您不希望您的應用程序根本找不到權限,則需要讓製造商簽署您的應用程序。

+0

那麼這是因爲已經打開應用程序內的連接,並正確處理它,它工作得很好。但是你所說的與這件事無關! – Saqib

+0

@Saqib你能告訴我你是如何處理它的,我在消息傳遞應用程序中有同樣的例外。 –

+0

我不得不明確地捕獲這兩個異常,我不知道它爲什麼不能用於通用EXCEPTION事件,但必須進行單獨的異常處理,例如針對SMS的SecurityException和針對消息端口的IOException。希望你弄明白! – Saqib