2011-04-26 55 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