一.知识概括

二.具体代码实现

1.建aidl包

2.拷贝以下文件到项目的aidl包中

下载地址: NeighboringCellInfo.aidl和ITelephony.aidl

3.在清单文件AndroidManifest.xml中添加权限

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.zking.android24_zy"><!-- 授予该应用读取通话状态的权限 --><uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission><!-- 授予该应用控制通话的权限 --><uses-permission android:name="android.permission.CALL_PHONE"></uses-permission><application android:allowBackup="true" android:icon="@mipmap/ic_launcher"android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round"android:supportsRtl="true" android:theme="@style/AppTheme"><activity android:name=".MainActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity><!--配置--><receiver android:name=".MyBlacklist"><intent-filter><action android:name="android.intent.action.PHONE_STATE"></action></intent-filter></receiver></application></manifest>

4.Java代码MyBlacklist.java

package com.zking.android24_zy;import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.telephony.TelephonyManager;
import android.util.Log;import com.android.internal.telephony.ITelephony;import java.lang.reflect.Method;/*** 黑名单*/public class MyBlacklist extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {if("android.intent.action.PHONE_STATE".equals(intent.getAction())){//1.得到电话管理者TelephonyManager tm= (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);int state=tm.getCallState();//得到电话的状态switch (state) {case TelephonyManager.CALL_STATE_RINGING://2.得到电话号码String number=intent.getStringExtra("incoming_number");Log.i("test","用户"+number+"来电了");//3.得到电话管理者类对象Class<TelephonyManager> clazz=TelephonyManager.class;try {//4.得到方法(的Method对象)Method method = clazz.getDeclaredMethod("getITelephony",null);//5.允许访问私有的方法method.setAccessible(true);//6.执行方法ITelephony iTelephony= (ITelephony) method.invoke(tm,null);//7.判断是不是这个号码是的话就挂断if("18711126092".equals(number)){iTelephony.endCall();//挂断电话}break;} catch (Exception e) {e.printStackTrace();}case TelephonyManager.CALL_STATE_OFFHOOK:Log.i("test","通话中...录音中");break;case TelephonyManager.CALL_STATE_IDLE:Log.i("test","挂了");break;}}}}

5.效果图

两部手机测试:一部连接Android Studio,一部打电话。如果电话在你的黑名单当中,会提示你所拨打的号码正在通话中。

类似的博客链接:http://blog.csdn.net/qq_37473021/article/details/55046772

24.Android-实现黑名单电话拦截相关推荐

  1. 黑马手机卫士黑名单电话拦截 使用ITelephony.aidl和NeighboringCellInfo.aidl 自动拦截黑名单电话 附文件

    Android Studio使用ITelephony.aidl 和 NeighboringCellInfo.aidl拦截电话,以及解决 java.lang.NoSuchMethodError: No ...

  2. Android App开发--电话拦截

    1)Android开发环境搭建 2)APP主要功能及实现方式 3)APP其他功能及实现方式 4)APP中应用到的技术 5)测试和代码 --------------------------------- ...

  3. Android项目:手机安全卫士(13)—— 通讯卫士之电话拦截与挂断

    Android项目:手机安全卫士(13)-- 通讯卫士之电话拦截与挂断 1 介绍 上一节我们讲了黑名单数据的存储等 CRUD 操作,今天,就到了它们发挥作用的时候了,通讯卫士功法终于要练成了.我们实现 ...

  4. 广播接收者android,电话拦截广播,电话接收者demo

    一.Android广播机制介绍 广播机制最大的特点就是发送方并不关心接收方是否接到数据,也不关心接收方是如何处理数据的. Android中广播的是操作系统中产生的各种各样的事件.例如,收到一条短信就会 ...

  5. Android之电话拦截

    今天来和大家一起分享一下我最近写的一个Demo,类似于黑名单访问,也就是我们俗称的电话拦截 首先我们需要两个aidl文件 第一个:NeighboringCellInfo.aidl package an ...

  6. Android手机安全软件之电话拦截功能浅析

    目前中国市场,骚扰电话大量的充斥手机用户的生活,因此手机安全软件的电话拦截功能受到广泛关注和使用.但第三方应用级电话拦截功能的效果并不理想,比如拦截电话时已经响了一声.或出现短暂的来电界面,多款安全软 ...

  7. android 原生分享界面_原生 Android 用户终于能用上骚扰电话拦截了

    虽然对大部分国产手机用户而言,骚扰电话早已不再是一个令人头痛的问题.但如果你使用的是原生/类原生 Android 系统(例如 Google Pixel),骚扰电话拦截这件事就变得非常棘手了.所以和很多 ...

  8. Android电话拦截及拦截提示音的实现

    本文所讲的内容是在Android系统中如何写程序进行 电话拦截,并发出拦截提示音提醒用户,可以说此功能还是比较实用的. 1.电话拦截 这个功能大家可能都知道了,就是利用反射原理调用ITelephony ...

  9. Android中电话拦截器案例

    实验要求:实现拦截保存到手机中的号码 1.在main-activity布局文件中代码如下: <?xml version="1.0" encoding="utf-8& ...

  10. Android M ROM 层拦截电话

    最近需要添加联系人黑名单功能,涉及到电话拦截,在CallsManager.java中有如下方法: @Overridepublic void onSuccessfulIncomingCall(Call ...

最新文章

  1. 吴恩达Deeplearning.ai国庆节上新:生成对抗网络(GAN)专项课程
  2. 经营成功的测试职业生涯
  3. 基本url是由协议服务器,http协议基础之URL
  4. MHA高可用主从复制实现
  5. Winforn中导入Excel并显示然后获取多选框选中的内容
  6. while(getchar()=='\n')continue;为什么作用是清空行
  7. Java中枚举的线程安全性及序列化问题
  8. 如何判断2服务器性能好或坏_无服务器革命:好,坏和丑
  9. [vue] 你知道v-model的原理吗?说说看
  10. chkconfig: 2345 20 80
  11. 从零开始学前端:CSS背景颜色 --- 今天你学习了吗?(CSS:Day09)
  12. BMVC 2021 | 近距离观察少镜头视频分类
  13. C虾仔笔记 - HorizontalScrollView水平滚动视图
  14. Windows与linux开发板文件传输和固件更新工具——tftpd32软件操作说明
  15. Longest Continuous 1
  16. 代数余子式之和怎么算_小明说养老 | 养老金怎么算之月平均缴费指数怎么来的?...
  17. python识别图像上的文字
  18. Windows和Linux的环境变量
  19. 平安京s9服务器维护,决战平安京S9赛季对局环境调整计划公布 S9麒麟刷新机制等调整预告[多图]...
  20. Tensorflow中scope命名方法

热门文章

  1. 004C语言 实现小世界网络
  2. python解释器安装步骤_怎么安装python解释器
  3. java pdf 阅读器_纯Java文档阅读器(word、pdf等)
  4. Python 数据科学手册
  5. pandas导入导出数据
  6. hit网络安全实验报告
  7. 【CAD开发】3dxml文件格式读取(Python、C++、C#)
  8. 怎么使用PDF编辑器在PDF中插入图片?PDF插入图片的教程
  9. 基于大数据的图书推荐系统
  10. 【Axure组件库】苹果官方SF Symbols 3图标库_每个图标均有2-8种风格