2010-07-20 135 views
2

我想知道攔截短信有哪些選項。 我希望能夠啓動一些代碼來處理短信收到時。 任何意見,這是否在技術上是可能的和我有什麼選擇,如果有多種方式,將不勝感激。攔截收到的短信

感謝 保羅

回答

1

既然你有這麼多的標籤,很難說哪個操作系統,你實際上是在開發。在iPhone上,如果沒有補丁內核(越獄)的幫助,您無法在SMS消息中「窺探」。

+0

我們正在爲所有這些平臺開發並試圖查看是否有一致的方法在多個平臺上執行此操作。 – user397205 2010-07-21 11:30:47

+1

我不想把我的應用程序放在應用程序商店,我有越獄設備。我如何攔截iPhone上的短信? – 2011-03-07 09:41:51

1

我只能說Symbian C++。好消息 - 這是可能的。 http://wiki.forum.nokia.com/index.php/CS001416_-_Listening_for_incoming_SMS_messages
還是這個例子,你想攔截髮送到特定的端口或只匹配一些文本模式的郵件消息:
如果你想被通知在收件箱文件夾中所有的變化,您可以使用此代碼示例 http://wiki.forum.nokia.com/index.php/SMS_Utilities_API

如果您不希望截取的郵件出現在收件箱文件夾中,請使用第二個示例。

0

在blakberry,你也不能窺探在標準端口上運行的SMS消息。

1

在blackberry中,您可以將消息偵聽器附加到特定端口。

try { 
      final MessageConnection conn = (MessageConnection) Connector.open("sms://:"+port); 
      conn.setMessageListener(new MessageListener() { 

       public void notifyIncomingMessage(MessageConnection mc) { 
        Message msg; 
        try { 
         msg = conn.receive(); 
        } catch (InterruptedIOException ex) { 
         ex.printStackTrace(); 
        } catch (IOException ex) { 
         ex.printStackTrace(); 
        } 
        String senderAddress = msg.getAddress(); // Get info from message 
        if (msg instanceof TextMessage) { 
         String msgReceived = ((TextMessage) msg).getPayloadText(); 
         // Do something with the message here 
        } else if (msg instanceof BinaryMessage) { 
         byte[] msgReceived = ((BinaryMessage) msg).getPayloadData(); 
         // do something with the binary message here 
        } 
       } 
      }); 

     } catch (IOException ex) { 
      ex.printStackTrace(); 
     } 

port = 0表示您可以偵聽所有默認傳入短信。

如果您將消息偵聽器附加到0以外的端口,郵件將不會出現在收件箱中。 但如果您未能處理此郵件,它將顯示在收件箱中。

消息監聽器有一些限制。

  1. 您無法直接從收件箱文件夾中讀取短信。
  2. 只有一個第三方應用程序可以偵聽一個端口。 例如如果您的應用程序正在偵聽端口0,則其他應用程序無法偵聽此端口。
  3. 黑莓重啓後,黑莓會刪除你的消息監聽器。
+0

你知道一種方法來使短信旁路設備INBOX? – Hrundik 2011-09-25 21:13:47