黑莓上的传入短信听众

时间:2013-06-18 06:30:20

标签: blackberry

我使用下面的代码通知短信。

它正在开发两个黑莓模拟器

我已在我的设备上安装该应用程序,并从Android设备发送短信。

短信听众没有在设备上工作。

设备上收到的传入消息。但我的应用程序没有通知听众。

如何解决它是什么问题。

端口号需要为设备提供什么?

class BackgroundApplication extends Application  implements MessageListener
{  
    int i=0;
    static String suffix;
    MessageConnection _mc ;

    public BackgroundApplication() 
    {
        try {
            _mc = (MessageConnection)Connector.open("sms://:0");
            _mc.setMessageListener(this);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } 


    }

public void notifyIncomingMessage(MessageConnection conn) {
        try {

            Message m = _mc.receive();
            String address = m.getAddress();
            String msg = null;
            if ( m instanceof TextMessage )
            {
                TextMessage tm = (TextMessage)m;
                msg = tm.getPayloadText();
            }
            else if (m instanceof BinaryMessage) {
                StringBuffer buf = new StringBuffer();
                byte[] data = ((BinaryMessage) m).getPayloadData();

                // convert Binary Data to Text
                msg = new String(data, "UTF-8");
            }
            else
                System.out.println("Invalid Message Format");
            System.out.println("Received SMS text from " + address + " : " + msg);
            showDialog("Msg: "+msg);

        } catch (Exception e) {
            // TODO: handle exception
        }
    }


    private void showDialog(String string) {


        synchronized (UiApplication.getEventLock()) 
        {
            Status.show(""+string,Bitmap.getPredefinedBitmap(Bitmap.INFORMATION), 5000,
                    Status.GLOBAL_STATUS, true, false, 1);
        }

    }

}

1 个答案:

答案 0 :(得分:0)

检查

http://supportforums.blackberry.com/t5/Java-Development/Different-ways-to-listen-for-SMS-messages/ta-p/445062

DatagramConnection _dc =
     (DatagramConnection)Connector.open("sms://");
            for(;;)
        {
               Datagram d = _dc.newDatagram(_dc.getMaximumLength());
               _dc.receive(d);
               byte[] bytes = d.getData();
               String address = d.getAddress();
               String msg = new String(bytes);
               System.out.println( "Received SMS text from " + address + " : " + msg);
         }