当有电话拨入,处于响铃状态的时候,我们设置电话监听器去挂断电话(aidl,反射),达到拦截电话的效果,挂断电话号码的方法放置在aidl文件中名称为endCall的方法。在我们的工程中新建com.android.internal.telephony包,将NeighboringCellInfo.aidl放入该包中,再新建android.telephony包,将NeighboringCellInfo.aidl放到该包下,这两个文件我会在下面给出。

点击打开链接

电话监听的代码:

private class MyPhoneStateListener extends PhoneStateListener {@Overridepublic void onCallStateChanged(int state, String incomingNumber) {super.onCallStateChanged(state, incomingNumber);switch (state) {case TelephonyManager.CALL_STATE_IDLE:break;case TelephonyManager.CALL_STATE_RINGING://挂断电话  aidl文件中System.out.println("响铃了");endCall(incomingNumber);break;}}}

endCall方法:

private void endCall(String phone) {String mode = numberDao.query(phone);if(mode.equals("2")||mode.equals("3")){
//          ITelephony.Stub.asInterface(ServiceManager.getService(Context.TELEPHONY_SERVICE));//ServiceManager此类android对开发者隐藏,所以不能去直接调用其方法,需要反射调用try {//1,获取ServiceManager字节码文件Class<?> clazz = Class.forName("android.os.ServiceManager");//2,获取方法Method method = clazz.getMethod("getService", String.class);//3,反射调用此方法IBinder iBinder = (IBinder) method.invoke(null, Context.TELEPHONY_SERVICE);//4,调用获取aidl文件对象方法ITelephony iTelephony = ITelephony.Stub.asInterface(iBinder);//5,调用在aidl中隐藏的endCall方法iTelephony.endCall();} catch (Exception e) {e.printStackTrace();}}}

添加权限:<uses-permission android:name="android.permission.CALL_PHONE"/>

Android拦截电话相关推荐

  1. Android拦截电话与短信(电话拒接/短信拒收)

    前段时间领导说了这样一个需求:对特定的号码电话进行拦截.短信拒收,在百度了查阅了很多的资料,结果有点不尽人意.特别是AIDL通信接口废了老大劲.直接上过程 创建aidl通信接口直接在main目录新建a ...

  2. android拦截电话并且不留下通话记录,具透丨iOS 10 支持拦截骚扰电话了,这些事情你应该知道...

    关于栏目 苹果.谷歌每年一次大更新的新系统都值得关注,我们始终不建议普通用户提前尝鲜稳定性不佳的测试版,但我们理解想要尝鲜的心情,于是有了「具透」这个栏目.「具透」会挖掘.详解新系统的各个功能细节,并 ...

  3. Android 四大组件之 BroadcastReceiver_3 实现开机启动拦截电话服务

    拦截电话服务(ListenCallService)参考 :https://blog.csdn.net/whjk20/article/details/112988381 这里实现开机启动完成后,启动拦截 ...

  4. Android学习小记-----拦截电话/拒接电话,规避拒接电话前响一声或者两声的问题...

    前段时间做了一个简单的Demo,拦截电话并拒接.其中遇到一个小问题,拦截会有延迟,偶尔会响一声或者两声,之后才能拒接成功.那么怎么解决响一两声的问题呢?确实还费了点时间呢!谁叫咱的技术不行呢?这里记录 ...

  5. 手机黑名单,拦截电话和短信,清除通话记录

    首先对功能简单分析一下,既然是黑名单功能,那么肯定是写在服务里面,需要一直在后台运行着. 一.拦截短信 短信在接收的时候,广播发送,监听广播接受者,拦截短信(有序广播) 将广播的优先级级别提高到最高 ...

  6. Android6.0 源码添加黑名单拦截电话和短信记录

    [目标] 在上一篇 Android6.0 源码增加黑名单功能 的基础上增加黑名单和短信拦截记录 [实现] 黑名单数据库和拦截记录数据库上一篇已经增加完成,这就需要我们在电话和短信分发的地方去判断号码是 ...

  7. Android 拦截TextView中超链接点击事件

    Android 拦截TextView中超链接的点击事件 1.在xml中为TextView添加autoLink属性 <TextView...android:autoLink = "web ...

  8. android 软电话 开发包-JNI 封装 SIP 协议,可进行二次开发应用于VOIP

    android 软电话 开发包-JNI 封装 SIP 协议,可进行二次开发应用于VOIP 该开发包为android平台下的JNI开发包,符合标准SIP协议,支持G729语音编码. 下载地址:源代码地址 ...

  9. android手机变微软手机号码,微软Your Phone未来将能让你用电脑远程控制拨打Android手机电话...

    原标题:微软Your Phone未来将能让你用电脑远程控制拨打Android手机电话 自从微软放弃开发手机之后,就不断耕耘与加强电脑与手机之间的功能合作,像现在已经可远程查看最近相片.短信.接收通知等 ...

最新文章

  1. 用于高保真自然图像合成的大规模GAN训练(Large Scale GAN Training For High Fidelity Natural Images)论文 pdf
  2. Common FileUpload组件的简单使用
  3. C++ STL Pair
  4. Can‘t connect to MySQL server on ‘localhost‘ (10061) 解决方法
  5. js实现连接的两种放法
  6. 用0和5凑被90整除的max数(洛谷P2192题题解,Java语言描述)
  7. SQLi LABS Less 26a 联合注入+布尔盲注
  8. Apsara Clouder专项技能认证:实现调用API接口(阿里云疫情白给课程系列)
  9. 文本编辑器Vim/Neovim任意代码执行漏洞(CVE-2019-12735)
  10. PKU 3468 A Simple Problem with Integers
  11. 快速排序算法_大佬的快速排序算法,果然不一样
  12. 北大计算机专业毕业论文,北京大学毕业论文格式范本
  13. python答辩毕设ppt_毕设答辩ppt总结
  14. 粗糙集理论(Rough Set Theory)
  15. android 崩溃相关
  16. 嵌入式Linux开发常用命令总结
  17. 虚幻4皮肤材质_UE4实时虚拟角色材质篇之Skin Material(一)
  18. SNS交换机(OEM博科FC交换机)怎样设置密码策略
  19. 用AI从零开始创建一个宫崎骏的世界
  20. 允许在CAD中操作超链接!Aspose.CAD最新版v19.9新功能你都了解吗?

热门文章

  1. 用户登录查全表好还是用用户名好_白杨SEO:长尾关键词挖掘工具哪个好?5118站长工具功能大全看这...
  2. EBS中AP发票分配行的解释
  3. CIO:主数据管理( MDM)知多少
  4. 《Python源码剖析》读书笔记
  5. 一文读懂Fabric 2.0新特性
  6. 深圳云计算培训学习:如何评价我国云计算的发展现状?--【千锋】
  7. 远控免杀专题(17)-Python-Rootkit免杀(VT免杀率7/69)
  8. 25匹马赛跑确定前五匹马的问题
  9. SaaS-初识SaaS
  10. shardingsphere实例应用