2012-07-03 118 views
1

多個來電短信的我有一些代碼閱讀黑莓

  DatagramConnection _dc =(DatagramConnection)Connector.open("sms://");   
      Datagram d = _dc.newDatagram(_dc.getMaximumLength());    
      _dc.receive(d); //Receive the sms 
      byte[] bytes = d.getData(); 
      String address = d.getAddress(); //The address of the sms is put on a string. 
      String msg = new String(bytes); 

難道上面的代碼偵聽傳入的SMS的一個連續的基礎上,或者它只是聽1條短信? 如果只是收聽1條短信,請給我提供代碼以便連續收聽短信。

+0

如果您想要偵聽所有傳入的消息,請啓動一個偵聽消息的線程。 – Signare

+0

感謝您的回覆,您可以提供我這樣的代碼如何做? – BirthOfTragedy

回答

1

您的代碼只能讀取一條短信。如果你需要閱讀每一個短信發送,你需要這樣的一個張貼在the official knowledge base article一個循環:

 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); 
     } 

現在,一個問題出現了:是對BB OS提供的SMS以串行的方式聽的應用程序?如果它是(我認爲如此,但從未測試過),那麼你所要做的就是儘可能快地將消息轉發給消費者(否則你將在SMS處理過程中佔用連接監聽器線程)。

+0

感謝您的回覆,您的代碼得到了幫助。 – BirthOfTragedy