通过电子邮件发送传出的短信

时间:2012-09-14 15:22:25

标签: email blackberry sms

无论如何都要监听出站短信而无需导入javax.wireless.messaging

我正在尝试编写一个应用程序来侦听从设备发送的短信,然后通过电子邮件发送短信的消息,但是我收到错误:

  

对Message的引用是不明确的,两个类   javax.wireless.messaging.Message在javax.wireless.messaging和class中   net.rim.blackberry.api.mail中的net.rim.blackberry.api.mail.Message   匹配

我需要导入net.rim.blackberry.api.mail.Message才能发送电子邮件。

有没有办法解决这个问题,因为这两个软件包似乎发生了冲突。

我的代码:

public void notifyIncomingMessage(MessageConnection messageconnection) {}


public void notifyOutgoingMessage(javax.wireless.messaging.Message message) {

    try {
        String address = message.getAddress();

        String msg = null;

        if ( message instanceof TextMessage ) {
            TextMessage tm = (TextMessage)message;
            msg = tm.getPayloadText();

        } else if (message instanceof BinaryMessage) {
            StringBuffer buf = new StringBuffer();
            byte[] data = ((BinaryMessage) message).getPayloadData();
            msg = new String(data, "UTF-8");

            Store store = Session.getDefaultInstance().getStore();

            Folder[] folders = store.list(Folder.SENT);
            Folder sentfolder = folders[0];

            Message in = new Message(sentfolder);
            Address recipients[] = new Address[1];

            recipients[0]= new Address("me@us.com", "user");

            in.addRecipients(Message.RecipientType.TO, recipients);
            in.setSubject("Outgoing sms");
            in.setContent("You have just sent an sms to: " + address + "\n" + "Message: " + msg);

            in.setPriority(Message.Priority.HIGH);

            Transport.send(in);

            in.setFlag(Message.Flag.OPENED, true);
            Folder folder = in.getFolder();
            folder.deleteMessage(in);               
        }
    } catch (IOException me) {
        System.out.println(me);
    }
}
} 

1 个答案:

答案 0 :(得分:2)

你永远不应该需要import Java中的任何东西。导入包只是一种快捷方式,因此您无需完全键入整个包名称。如果你有一个你想要使用的名为Message的类,并且它存在于两个包中(这两个都是你需要的),那么我就不会import这两个包。

简单地说,总是用他们的完全限定名称来引用它们:

net.rim.blackberry.api.mail.Message

javax.wireless.messaging.Message 

这只是打字的一点点。