您的位置:首页 > 移动开发 > Android开发

android之垃圾短信拦截功能实现

2012-10-11 19:19 381 查看
简单的短信拦截器

当我们需要把一些骚扰信息屏蔽掉时,这时,我们要设置一个短信拦截器:

短信拦截器是通过,当我们在系统收到短信前,对短信进行拦截,当系统要收短信时这是会收到一个广播,

所以,我们只需对此广播进行拦截。

如何拦截此广播呢?

由于系统上的广播接收者优先级一般是0,所以,我们只需要设置优先级大于0就可以在系统收到短信前对短信进行过滤。

具体代码如下:

在清单文件中加入收短信的权限:<uses-permission android:name="android.permission.RECEIVE_SMS" />

//这里我们只屏蔽12345这个手机号发送过来的短信

public class SmsBlacklist extends BroadcastReceiver {

@Override

public void onReceive(Context context, Intent intent) {

Object[] pdus = (Object[]) intent.getExtras().get("pdus");
// 获取到短信数据Object[], 其中每个都是一段短信

for (Object pdu : pdus) {

SmsMessage sms = SmsMessage.createFromPdu((byte[]) pdu);
// 每一段短信是一个字节数组, 构建成一个SmsMessage对象

Date date = new Date(sms.getTimestampMillis());
// 获取发送时间

String address = sms.getOriginatingAddress();
// 获取号码

String body = sms.getMessageBody();
// 获取消息内容

System.out.println(date + " " + address + " " + body);

if (address.equals("12345"))

abortBroadcast();
// 中断传输

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: