2

我知道使用广播接收器可以轻松拦截传入的短信。但我没有看到任何拦截传出短信的方法。如何才能做到这一点?但是有一种方法可以做到这一点。因为许多第三方应用程序同时读取传入和传出的短信。

4

1 回答 1

6

你将不得不做这样的事情:

  1. 缓存手机上所有消息的哈希码
  2. 为 content://sms注册一个内容观察者
  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;
}
于 2011-04-26T08:50:03.647 回答