BlackBerry中发送消息时出现运行时异常

BlackBerry中发送消息时出现运行时异常,blackberry,sms,blackberry-simulator,blackberry-jde,sms-gateway,Blackberry,Sms,Blackberry Simulator,Blackberry Jde,Sms Gateway,当我运行这段代码时,我遇到了运行时异常。请检查一下,如果你有任何想法,请帮助我。谢谢 private void sendSMS(String phone, String message) throws IOException { // TODO Auto-generated method stub Dialog.alert("Hello..In Send SMS Function"); System.out.println("in send

当我运行这段代码时,我遇到了运行时异常。请检查一下,如果你有任何想法,请帮助我。谢谢

private void sendSMS(String phone, String message) throws IOException 
    {

//       TODO Auto-generated method stub
        Dialog.alert("Hello..In Send SMS Function");
        System.out.println("in send sms function");

        MessageConnection conn =
            (MessageConnection)Connector.open("sms://+919099956325");
        TextMessage tmsg = (TextMessage) conn.newMessage(MessageConnection.TEXT_MESSAGE);
        tmsg.setAddress("sms://+919429441335");
        tmsg.setPayloadText("HIIiii");
        System.out.println("Text message is>>"+tmsg);
        conn.send(tmsg);
}
而不是
System.out.println(“文本消息是>>”+tmsg)

使用

System.out.println(“文本消息是>>”+tmsg.getPayloadText())

另外,
Connector.open
是一个阻塞操作,不应从主事件线程调用

您有
对话框。警报
,它只在事件线程上工作。这样做

UiApplication.getUiApplication().invokeLater(new Runnable() {
                public void run() {
                Dialog.alert("Hello..In Send SMS Function");
                }
            });
试试这个代码。这将启动一个新线程并调用sendsms方法

new Thread(new Runnable() {

        public void run() {
             try {
                sendSMS("123456789","message");
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

        }
    }).start();

          private void sendSMS(String phone, String message) throws IOException 
          {
    try {
        UiApplication.getUiApplication().invokeLater(new Runnable() {
            public void run() {
            Dialog.alert("Hello..In Send SMS Function");
            }
        });
        System.out.println("in send sms function");

        MessageConnection conn =
            (MessageConnection)Connector.open("sms://+919099956325");
        TextMessage tmsg = (TextMessage) conn.newMessage(MessageConnection.TEXT_MESSAGE);
        tmsg.setAddress("sms://+919429441335");
        tmsg.setPayloadText("HIIiii");
        System.out.println("Text message is>>"+tmsg.getPayloadText());
        conn.send(tmsg);
    } catch (Exception e) {
        System.out.println("Exception is >>"+e.toString());
    }
}
而不是
System.out.println(“文本消息是>>”+tmsg)

使用

System.out.println(“文本消息是>>”+tmsg.getPayloadText())

另外,
Connector.open
是一个阻塞操作,不应从主事件线程调用

您有
对话框。警报
,它只在事件线程上工作。这样做

UiApplication.getUiApplication().invokeLater(new Runnable() {
                public void run() {
                Dialog.alert("Hello..In Send SMS Function");
                }
            });
试试这个代码。这将启动一个新线程并调用sendsms方法

new Thread(new Runnable() {

        public void run() {
             try {
                sendSMS("123456789","message");
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

        }
    }).start();

          private void sendSMS(String phone, String message) throws IOException 
          {
    try {
        UiApplication.getUiApplication().invokeLater(new Runnable() {
            public void run() {
            Dialog.alert("Hello..In Send SMS Function");
            }
        });
        System.out.println("in send sms function");

        MessageConnection conn =
            (MessageConnection)Connector.open("sms://+919099956325");
        TextMessage tmsg = (TextMessage) conn.newMessage(MessageConnection.TEXT_MESSAGE);
        tmsg.setAddress("sms://+919429441335");
        tmsg.setPayloadText("HIIiii");
        System.out.println("Text message is>>"+tmsg.getPayloadText());
        conn.send(tmsg);
    } catch (Exception e) {
        System.out.println("Exception is >>"+e.toString());
    }
}

请查看链接@Anzy \..这也是我的问题,但问题中的答案无法正常工作,…根据我的要求..感谢回复和建议..查看链接@Anzy \..这也是我的问题,但问题中的答案无法正常工作,…根据我的要求..感谢您的回复和建议..非常感谢..感谢您的回复..我更正了我的错误为System.out.println(“短信是>>”+tmsg.getPayloadText());我还添加了UiApplication.getUiApplication().invokeLater(新的Runnable(){public void run(){Dialog.alert(“Hello..In Send SMS Function”);});我仍然得到运行时异常。请你的建议对我帮助很大请现在提出建议请提前谢谢再次感谢你的回复现在我得到。。。异常为>>java.lang.RuntimeException:在事件调度线程上不允许阻塞操作我得到的此异常..您不应该从事件线程调用该方法。现在查看答案非常感谢..谢谢你的回复..我更正了我的错误,改为System.out.println(“短信是>>”+tmsg.getPayloadText());我还添加了UiApplication.getUiApplication().invokeLater(新的Runnable(){public void run(){Dialog.alert(“Hello..In Send SMS Function”);});我仍然得到运行时异常。请你的建议对我帮助很大请现在提出建议请提前谢谢再次感谢你的回复现在我得到。。。异常为>>java.lang.RuntimeException:在事件调度线程上不允许阻塞操作我得到的此异常..您不应该从事件线程调用该方法。现在检查答案