24.Android-实现黑名单电话拦截
一.知识概括
二.具体代码实现
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-实现黑名单电话拦截相关推荐
- 黑马手机卫士黑名单电话拦截 使用ITelephony.aidl和NeighboringCellInfo.aidl 自动拦截黑名单电话 附文件
Android Studio使用ITelephony.aidl 和 NeighboringCellInfo.aidl拦截电话,以及解决 java.lang.NoSuchMethodError: No ...
- Android App开发--电话拦截
1)Android开发环境搭建 2)APP主要功能及实现方式 3)APP其他功能及实现方式 4)APP中应用到的技术 5)测试和代码 --------------------------------- ...
- Android项目:手机安全卫士(13)—— 通讯卫士之电话拦截与挂断
Android项目:手机安全卫士(13)-- 通讯卫士之电话拦截与挂断 1 介绍 上一节我们讲了黑名单数据的存储等 CRUD 操作,今天,就到了它们发挥作用的时候了,通讯卫士功法终于要练成了.我们实现 ...
- 广播接收者android,电话拦截广播,电话接收者demo
一.Android广播机制介绍 广播机制最大的特点就是发送方并不关心接收方是否接到数据,也不关心接收方是如何处理数据的. Android中广播的是操作系统中产生的各种各样的事件.例如,收到一条短信就会 ...
- Android之电话拦截
今天来和大家一起分享一下我最近写的一个Demo,类似于黑名单访问,也就是我们俗称的电话拦截 首先我们需要两个aidl文件 第一个:NeighboringCellInfo.aidl package an ...
- Android手机安全软件之电话拦截功能浅析
目前中国市场,骚扰电话大量的充斥手机用户的生活,因此手机安全软件的电话拦截功能受到广泛关注和使用.但第三方应用级电话拦截功能的效果并不理想,比如拦截电话时已经响了一声.或出现短暂的来电界面,多款安全软 ...
- android 原生分享界面_原生 Android 用户终于能用上骚扰电话拦截了
虽然对大部分国产手机用户而言,骚扰电话早已不再是一个令人头痛的问题.但如果你使用的是原生/类原生 Android 系统(例如 Google Pixel),骚扰电话拦截这件事就变得非常棘手了.所以和很多 ...
- Android电话拦截及拦截提示音的实现
本文所讲的内容是在Android系统中如何写程序进行 电话拦截,并发出拦截提示音提醒用户,可以说此功能还是比较实用的. 1.电话拦截 这个功能大家可能都知道了,就是利用反射原理调用ITelephony ...
- Android中电话拦截器案例
实验要求:实现拦截保存到手机中的号码 1.在main-activity布局文件中代码如下: <?xml version="1.0" encoding="utf-8& ...
- Android M ROM 层拦截电话
最近需要添加联系人黑名单功能,涉及到电话拦截,在CallsManager.java中有如下方法: @Overridepublic void onSuccessfulIncomingCall(Call ...
最新文章
- 吴恩达Deeplearning.ai国庆节上新:生成对抗网络(GAN)专项课程
- 经营成功的测试职业生涯
- 基本url是由协议服务器,http协议基础之URL
- MHA高可用主从复制实现
- Winforn中导入Excel并显示然后获取多选框选中的内容
- while(getchar()=='\n')continue;为什么作用是清空行
- Java中枚举的线程安全性及序列化问题
- 如何判断2服务器性能好或坏_无服务器革命:好,坏和丑
- [vue] 你知道v-model的原理吗?说说看
- chkconfig: 2345 20 80
- 从零开始学前端:CSS背景颜色 --- 今天你学习了吗?(CSS:Day09)
- BMVC 2021 | 近距离观察少镜头视频分类
- C虾仔笔记 - HorizontalScrollView水平滚动视图
- Windows与linux开发板文件传输和固件更新工具——tftpd32软件操作说明
- Longest Continuous 1
- 代数余子式之和怎么算_小明说养老 | 养老金怎么算之月平均缴费指数怎么来的?...
- python识别图像上的文字
- Windows和Linux的环境变量
- 平安京s9服务器维护,决战平安京S9赛季对局环境调整计划公布 S9麒麟刷新机制等调整预告[多图]...
- Tensorflow中scope命名方法