2011-04-26 88 views
2

我知道使用廣播接收器很容易攔截到來的短信。但我沒有看到任何攔截即將離任的短信的方法。如何才能做到這一點?但有一種方法可以做到這一點。因爲許多第三方應用程序都讀取傳入和傳出的短信。Android:有什麼方法可以收聽傳出的短信?

回答

5

你將不得不做這樣的事情:

  1. 緩存手機上的所有信息的散列碼
  2. 註冊content observer內容://短信
  3. 的onChange觀察者的方法,枚舉所有消息以檢查它是否在緩存中,如果沒有,則消息剛剛發出。

祝你的項目:-)

編輯:MD5方法
你可以把(到達日期+消息)文本得到一個獨特的MD5輸出。

private String md5(String in) { 
    MessageDigest digest; 
    try { 
     digest = MessageDigest.getInstance("MD5"); 
     digest.reset();   
     digest.update(in.getBytes()); 
     byte[] a = digest.digest(); 
     int len = a.length; 
     StringBuilder sb = new StringBuilder(len << 1); 
     for (int i = 0; i < len; i++) { 
      sb.append(Character.forDigit((a[i] & 0xf0) >> 4, 16)); 
      sb.append(Character.forDigit(a[i] & 0x0f, 16)); 
     } 
     return sb.toString(); 
    } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } 
    return null; 
} 
+0

非常好的方法...順便說一下,如何存儲消息的哈希碼。直到現在我還不知道,這可能是可能的。非常感謝您的幫助。非常感謝。 :-) – Vivek 2011-04-26 09:11:06

+0

例如,您可以使用md5散列。我用Java md5方法更新我的帖子。 – 2011-04-26 09:52:03

+0

非常感謝。 – Vivek 2011-04-26 10:22:52