如何创建黑名单

黑名单的大致原理是监听来电,当有来电是检查它的号码,是否存在于黑名单中。如果它是黑名单中的号码,立即挂断电话。

所以主要步骤是四步:一、监听有来电并获取它的号码;二、查看号码是否在黑名单中;三、挂断电话;

一、监听来电并获取它的号码

1、引入接口文件

文件名和包名必须与之相同。

2、申请权限

    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
    <uses-permission android:name="android.permission.CALL_PHONE"/>
    <uses-permission android:name="android.permission.READ_CONTACTS"/>

3、描述监控内容

CustomPhoneCallListener cpListener;
    TelephonyManager telephonyManager;
    public class CustomPhoneCallListener extends PhoneStateListener{
        @Override
        public void onCallStateChanged(int state, String incomingNumber) {
            switch (state){
                case TelephonyManager.CALL_STATE_IDLE:
                    break;
                case TelephonyManager.CALL_STATE_OFFHOOK:
                    break;
                case TelephonyManager.CALL_STATE_RINGING:
                    if(isBlock(incomingNumber)){
                        try{
                            Method method = Class.forName("android.os.ServiceManager").getMethod("getService", String.class);
                            IBinder binder = (IBinder) method.invoke(null,new Object[]{TELEPHONY_SERVICE});
                            ITelephony telephony = ITelephony.Stub.asInterface(binder);
                            telephony.endCall();
                        } catch (Exception e){
                            e.printStackTrace();
                        }
                    }
            }
            super.onCallStateChanged(state, incomingNumber);
        }
    }

其中incomingNumber就是来电的号码。

二、查看号码是否在黑名单中

    private boolean isBlock(String number) {
        for (int i = 0; i < black_phone.size(); i++) {
            if(black_phone.get(i).equals(number)){
                return true;
            }
        }
        return false;
    }

三、如果号码存在于黑名单中,挂断电话

                    if(isBlock(incomingNumber)){
                        try{
                            Method method = Class.forName("android.os.ServiceManager").getMethod("getService", String.class);
                            IBinder binder = (IBinder) method.invoke(null,new Object[]{TELEPHONY_SERVICE});
                            ITelephony telephony = ITelephony.Stub.asInterface(binder);
                            telephony.endCall();
                        } catch (Exception e){
                            e.printStackTrace();
                        }
                    }

以上

时间: 2024-08-02 13:12:26

如何创建黑名单的相关文章

23.创建黑名单数据库

1.创建帮助类,创建表 public class BlackNumberOpenHelper extends SQLiteOpenHelper{ public BlackNumberOpenHelper(Context context) { super(context, "safe.db", null, 1); } /** * blacknumber 表名 * _id 主键自动增长 * number 电话号码 * mode 拦截模式 电话拦截 短信拦截 * @param db */ @

Kong Gateway - 11 基于网关服务的ACL访问控制列表 黑名单

同一服务名称 book 不允许即创建白名单访问控制列表又创建黑名单访问控制列表 启用服务的白名单&黑名单配置文件时,它们俩是不允许同时定义的,我们应该树立这样一种认知 不在黑名单中 即使没定义白名单,我们也把黑名单之外的所有用户归类为白名单用户 故ACL必须分两篇来发布,本范例中使用了 Kong Gateway - 01 基于网关服务的基本验证(Basic Authentication)9种验证方式当中的1种方式而已,我们当然可以用剩余的8种验证方式之一来取代basic-auth,强调一点的是A

spark streaming (二)

一.基础核心概念 1.StreamingContext详解 (一) 有两种创建StreamingContext的方式:             val conf = new SparkConf().setAppName(appName).setMaster(master);             val ssc = new StreamingContext(conf, Seconds(1)); StreamingContext, 还可以使用已有的SparkContext来创建         

搭建开源入侵检测系统Snort并实现与防火墙联动

Snort作为一款优秀的开源主机入侵检测系统,在windows和Linux平台上均可安装运行.BT5作为曾经的一款经典的渗透神器,基于 Ubuntu,里面已经预装很多的应用,比如Mysql.Apache.Snort等等.Guardian是snort的插件,通过读取snort报警日 志将入侵IP加入到Iptables中.Iptables 是与最新的 3.5 版本 Linux 内核集成的 IP 信息包过滤系统. 本文详细介绍了BT5中安装snrot NIDS并实现与iptables防火墙联动的过程.

MySQL主从

mysql主从--1 [[email protected] ~]# rm -rf /usr/local/mysql         (删除之前安装的MySQL) [[email protected] ~]# cd /usr/local/src/ [[email protected] src]# wget http://mirrors.sohu.com/mysql/MySQL-5.1/mysql-5.1.73-linux-i686-glibc23.tar.gz [[email protected]

HDFS副本放置策略

前言 前一篇文章中刚刚分析完HDFS的异构存储以及相关的存储类型选择策略,浏览量还是不少的,说明大家对于HDFS的异构存储方面的功能还是很感兴趣的.但是其实一个文件Block块从最初的产生到最后的落盘,存储类型选择策略只是其中1步,因为存储类型选择策略只是帮你先筛选了一些符合存储类型要求的存储节点目录位置列表,通过这些候选列表,你还需要做进一步的筛选,这就是本文所准备阐述的另外一个主题,HDFS的副本放置策略.在写本文之前,我搜过网上关于此方面的资料与文章,还是有许多文章写的非常不错的,所以我会

Python3.5 Day2作业:购物车程序

需求: 1. 启动程序后,用户通过账号密码登录,然后打印商品列表. 2. 允许用户根据商品编号购买商品. 3. 用户选择商品后,检测余额是否足够,够就直接扣款,不够就提醒充值. 4. 可随时退出,退出时,打印已购买的商品和余额. 1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 count = 0 # 计数器 5 username = "aaa" # 登录用户名 6 userpassword = "asd"

python 登录三次禁止登录

#! /usr/bin/python # coding:utf-8 "' 主要需求是 登录密码错误三次,禁止登录 设计如下 1,先定义一个用户名和密码 2,定义一个黑名单,用来存放超过三次的用户名 3,获取用户的输入的用户名 4,首先判断这个用户是否存在黑名单中,如果有,提示有,并且无条件退出 5,如果黑名单中没有,将进行三次密码校验 作者 琦琦爸爸 '" # 定义字符串一定要加双引号 real_name="czb" real_pwd=123456 # 如果读写的模

浅谈facebook威胁分析框架

facebook在去年的时候曾向外公开自家的威胁情报分析框架ThreatData(Understanding Online Threats with ThreatData) ,消息发出后更多的人关心的是是否开源,反正我是没有找到这个开源框架. For us to do our part effectively, we must continually search for new types of attacks and deeply understand existing ones. Give