上一篇讲了电话拦截,现在讲一下短信拦截。

由于android4.4以上,提高了系统的安全性,同时,也对短信的处理进行了保护

先来讲一下在android4.4以下的短信拦截机制

在android4.4一下,要拦截黑名单中的短信,只需要注册一个优先级较高的短信广播接收器,然后在接收到短信后,查看发送者是否存在于黑名单中,如果存在的话,abortBroadcast();截断广播,这样系统的短信应用就接收不到短信了,实现了短信的拦截。

public class InterceptSmsReceiver extends BroadcastReceiver {public InterceptSmsReceiver() {}@Override
    public void onReceive(Context context, Intent intent) {// TODO: This method is called when the BroadcastReceiver is receiving
        SharedPreferences mSp = context.getSharedPreferences("config", Context.MODE_PRIVATE);
        boolean BlackNumStatus = mSp.getBoolean("BlackNumStatus", true);
        if (!BlackNumStatus) {/**黑名单保护未开启,退出**/return;
        }BlackNumberDBOperation operation = new BlackNumberDBOperation(context);
//通过Intent获得传过来的短信数据
Object[] objs = (Object[]) intent.getExtras().get("pdus");
        for (Object obj : objs) {SmsMessage smsMessage = SmsMessage.createFromPdu((byte[]) obj);
//获得发送人号码
String sender = smsMessage.getOriginatingAddress();
//获得短信信息
String body = smsMessage.getMessageBody();
            if (sender.startsWith("+86")) {sender = sender.substring(3, sender.length()).trim();
            }if(operation.isNumberExist(sender)){System.out.println("号码存在于黑名单中");
                int mode = operation.getBlackContactMode(sender);
                System.out.println("mode="+mode);
                if (mode == 2 || mode == 3) {/**同时都需要拦截短信,这时要截断广播**/

                    /***
                     * android 4.4以上拦截不住
                     */
                    abortBroadcast();
                }}}}
}

在android4.4以上,由于android新增了一个default sms的机制,简而言之,就是如果要在4.4之后实现短信拦截功能,就必须成为default sms,把所有短信相关的功能都包揽了,然后再做短信拦截。但这种做法,适配性和兼容性的工作是非常巨大的,短信、wapush(多种)、彩信、单双卡等等,相当于要求短信拦截类的软件要集成一个功能非常完善的通讯录类应用的功能。在这里借鉴一个网友的写法,4.4以上新增了个android.app.AppOpsManager,通过反射它来显示短信拦截或删除,这里博主还没有尝试,大家可以先试一哈。

android 黑名单 短信拦截相关推荐

  1. android手机短信拦截的实现

    以前刚开始接触android时对诸如短信拦截之类的功能很感兴趣,网上很多文章都介绍了使用广播接收android.provider.Telephony.SMS_RECEIVED的动作,从而接收到SMS信 ...

  2. Android开发短信拦截与读取,消息通知Notification

    截获系统广播,读取消息,若联系人存在于通信录中,则让消息继续传播:若属于陌生号码,则中断消息,同时把信息显示在自己的程序中. 拦截器代码如下: public class SMSInterceptRec ...

  3. android手机短信拦截器,垃圾短信退订套路深 手机上装拦截软件是可行方法

    原标题:垃圾短信退订套路深 手机上装拦截软件是可行方法 应对 相关数据显示,2017年通过某知名手机安全卫士拦截的骚扰电话全年共计380亿次,相比2016年的385亿次略有下降:垃圾短信方面,全年拦截 ...

  4. android 360短信拦截短信验证码,莫名收到短信验证码?360借条安全专家提醒小心新骗局...

    日常生活中,许多人在注册.登陆APP时往往都会选用短信验证码的方式来进行,这样不仅方便,也可以避免因为账号过多而遗忘登陆密码.然而,这样的方式却也成为不法分子眼中的漏洞,围绕短信验证码来展开的电信诈骗 ...

  5. android电话短信拦截,苹果手机短信删除了在哪还可以找到

    苹果手机短信删除了在哪还可以找到?如何恢复删除的手机短信?手机无论经过怎么的发展与变化,手机上的短信功能都是一直存在的,毕竟还有一些重要的信息还是要通过短信传递,不过每天也会收到很多的垃圾短信,如果清 ...

  6. android 魅族短信拦截,如何防护手机里的个人信息?魅族18系列教你如何防范隐私泄露...

    智能手机为我们带来了无数的便利,如何保护智能手机的安全也已经成为了一个"课题".有人认为,将智能手机设置复杂的密码以及防盗就算安全了.殊不知,这样的安全仅仅只是"财务安全 ...

  7. android 魅族短信拦截,内部员工揭秘魅族手机Android 4.0计划

    魅族MX是近期关注度相当高的一款手机,这款国产手机以其过硬的配置和不错的优化获得了媒体和网友的一致好评,但因为魅族的定制系统较为封闭,网友们无法通过各种渠道来获取魅族手机的第三方固件,所以只能期盼魅族 ...

  8. 关于Android短信拦截(二)

    题外话:因为这是一篇来自百度的文章,并且在好多网站中都有转载,但却没有标明出处,所以我也搞不清作者是何人,特在此声.另外,关于这个例子的实现,一定要注意权限的设置,我在这里例子的实验中,由于没有找到S ...

  9. Android的BroadcastReceiver 广播 短信拦截

    如何去理解BroadcastReceiver(广播)?其实可以这样想,首先我们要有一个发送广播的"媒体",在这个例子中,我们暂且用activity组件作为这个媒体,当然以后会用到s ...

最新文章

  1. 图论(十)最小生成树-Prim算法
  2. 3周第4次课 df、du命令 fdisk磁盘分区
  3. ProGuard中keep到底有什么作用
  4. How does gateway system determine whether cache is hit
  5. 领域应用 | 阿里发布藏经阁计划,打造 AI 落地最强知识引擎
  6. java手机音乐文件夹,从原始文件夹打开音乐文件,使用Android上的意图在设备的默认应用程序上播放...
  7. win8关闭uefi+linux,UEFI启动是什么?Win8关闭UEFI引导方式的方法
  8. 项目中的每个层的理念是什么?
  9. 在SOLIDWORKS Electrical中,如何创建电气原理图符号库?
  10. 你该知道的杂志分区和影响因子及最新表格下载
  11. 微信小程序组件间传值
  12. i7-1160G7 怎么样 相当于什么水平
  13. win8.1 or win server 2012 安装python3.5以上导致Error 0x80240017
  14. MySQL数据库05 数据库控制和设计
  15. 2805076 /system/WTD/android.fg_blocked_67fc4997-ims导致binder耗尽
  16. 有关于服务器6010端口
  17. 长沙麻将APP思路整理
  18. 论文查重,有什么免费软件可以自建本地比对库,然后进行查重?
  19. Java学生成绩排序输出的三种不同方法
  20. Linux使用nexus搭建maven私服

热门文章

  1. 【超简单方法】ubantu18.04.2安装最新显卡驱动
  2. html表格如何成为一条线,html如何制作细线表格
  3. 717-C++继承与多态
  4. php字符串里有斜杠怎么去掉,php如何去掉转义后字符串中的反斜杠
  5. python绘制直方图(成绩可视化),turtle绘图
  6. 王者荣耀服务器维护被扣分,王者荣耀出现大范围维护事故,无数玩家躺枪被扣分,直接被禁赛!...
  7. php 遍历输出数组,php中数组怎么循环输出?遍历数组的方法介绍
  8. 分布式一致性协议 raft协议 动画版
  9. linux蓝牙鼠标自动断开,在Ubuntu 18.04系统中蓝牙鼠标连接失败问题的解决
  10. python爬虫遇到403错误