2010-03-22 1 views
1

J'ai utilisé le code donné mais je reçois IOCancelledException et IOException. Et IOCancelledException.getMessage()/IOException.getMessage() donnant null chaîne, il ne donne pas de message d'erreur. S'il vous plaît, aidez-moi à comprendre la raison.BlackBerry - Exception avec un message nul lors de l'envoi de sms à l'aide du connecteur

class SMSThread extends Thread { 
    Thread myThread; 
    MessageConnection msgConn; 
    String message; 
    String mobilenumber; 

    public SMSThread(String textMsg, String mobileNumber) { 
     message = textMsg; 
     mobilenumber = mobileNumber; 
    } 

    public void run() { 
     try { 
      msgConn = (MessageConnection) Connector.open("sms://+" 
        + mobilenumber); 
      TextMessage text = (TextMessage) msgConn 
        .newMessage(MessageConnection.TEXT_MESSAGE); 
      text.setPayloadText(message); 
      msgConn.send(text); 
      msgConn.close(); 
     } catch (IOCancelledException ioce) { 
      System.out 
        .println("IOCancelledException: " + ioce.getMessage()); 
     } catch (IOException ioe) { 
      System.out.println("IOException: " + ioe.getMessage()); 
     } catch (Exception e) { 
      System.out.println("Exception: " + e); 
     } 
    } 
} 
+0

Obtenez-vous "IOCancelledException" et "IOException" pendant la même séquence de code, ou autrement? –

Répondre

2

Je viens de tester l'échantillon, je ne peux pas reproduire les exceptions.

Avez-vous exécuté MDS simulator lorsque vous démarrez l'émulateur de périphérique?
(il est obligatoire pour simuler la connexion réseau)

Voici mon code:

class Scr extends MainScreen { 

    BasicEditField mPhoneNumberField = new BasicEditField("phone number", ""); 
    BasicEditField mSMSField = new BasicEditField("sms text", ""); 

    public Scr() { 
     add(mPhoneNumberField); 
     add(mSMSField); 
    } 

    protected void makeMenu(Menu menu, int instance) { 
     super.makeMenu(menu, instance); 

     menu.add(new MenuItem("send sms", 0, 0) { 
      public void run() { 
       SMSThread thread = new SMSThread(mSMSField.getText(), 
         mPhoneNumberField.getText()); 
       thread.start(); 
      } 
     }); 
    } 

    class SMSThread extends Thread { 
     Thread myThread; 
     MessageConnection msgConn; 
     String message; 
     String mobilenumber; 

     public SMSThread(String textMsg, String mobileNumber) { 
      message = textMsg; 
      mobilenumber = mobileNumber; 
     } 

     public void run() { 
      try { 
       msgConn = (MessageConnection) Connector.open("sms://+" 
         + mobilenumber); 
       TextMessage text = (TextMessage) msgConn 
         .newMessage(MessageConnection.TEXT_MESSAGE); 
       text.setPayloadText(message); 
       msgConn.send(text); 
       msgConn.close(); 
      } catch (IOCancelledException ioce) { 
       System.out 
         .println("IOCancelledException: " + ioce.getMessage()); 
      } catch (IOException ioe) { 
       System.out.println("IOException: " + ioe.getMessage()); 
      } catch (Exception e) { 
       System.out.println("Exception: " + e); 
      } 
     } 
    } 
} 
+0

J'ai ajouté ci-dessous la ligne au code ci-dessus et il a résolu mon problème ... msgConn = (MessageConnection) Connector.open ("sms: //: 0"); text.setAddress ("sms: // + 91" + numéro de mobile); –

Questions connexes