黑莓 - 发送短信超时

时间:2011-10-21 06:35:48

标签: blackberry

我有简单的代码来发送短信。它工作正常。只是小问题。我怎么能知道短信无法发送?连接或其他方式有些超时?假设没有网络,没有SIM卡或没有信用卡。谢谢 这是代码:

 public static void sendSMS(String content, String number) {
        MessageConnection mc = null;
        TextMessage msg;
        try {

            mc = (MessageConnection) Connector.open("sms://" + number,Connector.WRITE,true);
            msg = (TextMessage) mc.newMessage(MessageConnection.TEXT_MESSAGE);
            msg.setPayloadText(content);
            mc.send(msg);

        } catch (final Exception e) {
            e.printStackTrace();
            UiApplication.getUiApplication().invokeLater(new Runnable() {

                public void run() {
                    Dialog.alert(e.getMessage());
                }
            });

        } finally {
            try {
                if (mc != null) {
                    mc.close();
                }
            } catch (IOException e) {
            }
        }
    }

1 个答案:

答案 0 :(得分:0)

private void sendSMS(final String no, final String msg) {

    try {

        new Thread() {

            public void run() {

                if (RadioInfo.getNetworkType() == RadioInfo.NETWORK_CDMA) {

                    DatagramConnection dc = null;

                    try {

                        dc = (DatagramConnection) Connector.open("sms://" + no);

                        byte[] data = msg.getBytes();

                        Datagram dg = dc.newDatagram(dc.getMaximumLength());

                        dg.setData(data, 0, data.length);

                        dc.send(dg);

                        UiApplication.getUiApplication().invokeLater(new Runnable() {

                            public void run() {

                                try {

                                    System.out.println("Message Sent Successfully : Datagram");

                                    Dialog.alert("Message Sent Successfully");

                                } catch (Exception e) {

                                    System.out.println("Exception **1 : " + e.toString());

                                    e.printStackTrace();

                                }

                            }

                        });

                    } catch (Exception e) {

                        System.out.println("Exception 1 : " + e.toString());

                        e.printStackTrace();

                    } finally {

                        try {

                            dc.close();

                            dc = null;

                        } catch (IOException e) {

                            System.out.println("Exception 2 : " + e.toString());

                            e.printStackTrace();

                        }

                    }

                } else {

                    MessageConnection conn = null;

                    try {

                        conn = (MessageConnection) Connector.open("sms://" + no);

                        //generate a new text message

                        TextMessage tmsg = (TextMessage) conn.newMessage(MessageConnection.TEXT_MESSAGE);

                        //set the message text and the address

                        tmsg.setAddress("sms://" + no);

                        tmsg.setPayloadText(msg);

                        //finally send our message

                        conn.send(tmsg);

                        UiApplication.getUiApplication().invokeLater(new Runnable() {

                            public void run() {

                                try {

                                    System.out.println("Message Sent Successfully : TextMessage");

                                    Dialog.alert("Message Sent Successfully : TextMessage");

                                } catch (Exception e) {

                                    System.out.println("Exception **1 : " + e.toString());

                                    e.printStackTrace();

                                }

                            }

                        });

                    } catch (Exception e) {

                        System.out.println("Exception 3 : " + e.toString());

                        e.printStackTrace();

                    } finally {

                        try {

                            conn.close();

                            conn = null;

                        } catch (IOException e) {

                            System.out.println("Exception 4 : " + e.toString());

                            e.printStackTrace();

                        }

                    }

                }

            }

        }.start();

    } catch (Exception e) {

        System.out.println("Exception 5 : " + e.toString());

        e.printStackTrace();

    }