由于保证手机安全性,挂断电话的endcall方法被隐藏了。但是我们可以通过java反射机制获得此方法去拦截电话,下面代码为拦截电话片段代码。请参阅

//获取到系统的电话服务TelephonyManager  tm = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);MyPhoneStateListener listener = new MyPhoneStateListener();//设置监听tm.listen(listener, PhoneStateListener.LISTEN_CALL_STATE);
 private class MyPhoneStateListener extends PhoneStateListener {//电话状态改变的监听@Overridepublic void onCallStateChanged(int state, String incomingNumber) {super.onCallStateChanged(state, incomingNumber);
//            * @see TelephonyManager#CALL_STATE_IDLE  电话闲置
//            * @see TelephonyManager#CALL_STATE_RINGING 电话铃响的状态
//            * @see TelephonyManager#CALL_STATE_OFFHOOK 电话接通switch (state){//电话铃响的状态case TelephonyManager.CALL_STATE_RINGING:String mode = dao.findNumber(incomingNumber);/*** 黑名单拦截模式* 1 全部拦截 电话拦截 + 短信拦截* 2 电话拦截* 3 短信拦截*/if(mode.equals("1")|| mode.equals("2")){System.out.println("挂断黑名单电话号码");Uri uri = Uri.parse("content://call_log/calls");getContentResolver().registerContentObserver(uri,true,new MyContentObserver(new Handler(),incomingNumber));//挂断电话endCall();}break;}}}
/*** 挂断电话(通过反射机制获得隐藏的endCall方法)*/private void endCall() {try {//通过类加载器加载ServiceManagerClass<?> clazz = getClassLoader().loadClass("android.os.ServiceManager");//通过反射得到当前的方法Method method = clazz.getDeclaredMethod("getService", String.class);IBinder iBinder = (IBinder) method.invoke(null, TELEPHONY_SERVICE);ITelephony iTelephony = ITelephony.Stub.asInterface(iBinder);iTelephony.endCall();} catch (Exception e) {e.printStackTrace();}}
  1. * 挂断电话(通过反射机制获得隐藏的endCall方法)
  2. */
  3. private void endCall() {
  4. try {
  5. //通过类加载器加载ServiceManager
  6. Class<?> clazz = getClassLoader().loadClass("android.os.ServiceManager");
  7. //通过反射得到当前的方法
  8. Method method = clazz.getDeclaredMethod("getService", String.class);
  9. IBinder iBinder = (IBinder) method.invoke(null, TELEPHONY_SERVICE);
  10. ITelephony iTelephony = ITelephony.Stub.asInterface(iBinder);
  11. iTelephony.endCall();
  12. } catch (Exception e) {
  13. e.printStackTrace();
  14. }
  15. }

android黑名单挂断电话(endCall)反射方法获取相关推荐

  1. 黑名单挂断电话及删除电话记录

    黑名单挂断电话及删除电话记录 挂断电话 挂断电话需要申请权限android.permission.CALL_PHONE 对于黑名单号码的来电如何挂断,由于监听来电时在TelephonyManager中 ...

  2. android 自动拨打电话和挂断电话(反射和intent方式)

    欢迎来到博主的技术分享博客 今天分享的技术主要内容是自动拨打电话和挂断电话.自动拨打电话分为两种,一种是通过反射ITelephony这个类直接调用call方法,一种是通过intent方法.而挂断电话则 ...

  3. android 实现挂断电话【四种方式】,亲测可用

    网上查到两种挂断电话方式 第一种:通过反射得到隐藏的API,需要aidl文件,但是这种方式测试后,无效.方法写出来吧,也许对你有你有帮助. 首先在main文件下创建报名com.android.inte ...

  4. Android挂断电话流程

    近期在友盟上看到许多关于挂断电话导致崩溃的问题,如下异常 java.lang.NoSuchMethodError: No interface method endCall()Z in class Lc ...

  5. Android挂断电话代码

    监听来电这里就不贴代码了,这是监听到来电后挂断电话 /*** 通过反射的方式挂断电话*/public void endcall() {try {//获取到ServiceManagerClass< ...

  6. Android自动接听和挂断电话实现原理

    转自:http://bbs.51cto.com/thread-1078059-1.html 一  前言 这两天要研究类似白名单黑名单以及手势自动接听的一些功能,所以呢,自然而然的涉及到怎么自动接听/挂 ...

  7. Android挂断电话以及Java Class Loader

    Android中,要自己实现一个挂断电话方法时,很久之前可以endCall().不过现在已经不行了,要应用反射机制,获取到 "android.os.ServiceManager" ...

  8. Android拨打、接听、挂断电话操作

    Android2.3之前的系统可以通过反射机制调用ITelephone的方法来挂断电话,因为Android2.3以后增加了对permission  android.permission.MODIFY_ ...

  9. 挂断电话的实现(即类似于电话号码黑名单)

    在文章的开头先列出以下需要注意的地方: 1.需要用到的权限如下: <uses-permission android:name="android.permission.READ_PHON ...

  10. Android通过AIDL实现接听电话、挂断电话操作 | 拨打电话

    Android中拨打电话功能是很轻松的只需要几行代码即可,如下: 首先还是得加上权限这个东西(或者动态申请) <!--拨打电话--> <uses-permission android ...

最新文章

  1. capitalism 2 3892303_2021年2月5日财神方位查询,今天哪个方位财运好
  2. Proe5.0导出PDF至配置文件的相关方法,VC++
  3. 接下来学习计划2020.11.9
  4. 深入理解 Java 垃圾回收机制
  5. 前端学习(2937):vue对象之间的实例属性
  6. java集合进行排序的两种方式
  7. matlab图像处理模板,求助,数字图像处理模板匹配
  8. MyBatis3源码解析(7)TypeHandler注册与获取
  9. JSK-396 平均值【入门】
  10. maven的安装配置超详细教程【含nexus】
  11. (一)如何实现一个单进程阻塞的网络服务器
  12. asp.net 页面引入外部JS 在IE6下延迟加载报错,IE7+均没问题
  13. 微信小程序商城源码,带前后端,基于node
  14. html如何隐藏input,html如何让input隐藏
  15. Ubuntu 机箱前置耳机没声音的问题(彻底解决)
  16. 关系代数题目小汇总——数据库
  17. C++ Eigen 库中旋转向量、旋转矩阵、欧拉角、四元数的定义及互相转换
  18. 统筹规划题:“服装店4个小组15天最多做多少套衣服裤子”的思路
  19. 去掉最高分最低分求平均分
  20. Kubernetes更优雅的监控工具Prometheus Operator

热门文章

  1. 王道考研机试指南重写
  2. 一个人做饭有哪些推荐?
  3. 开源点云数据处理 开源_使用开源软件教授大数据处理
  4. 全员系统的服务器地址,江西省全员人口信息系统登录(全员系统查询)
  5. 计算机win7截长屏,电脑截长图【应对法子】
  6. js判断ie 火狐 还是chrome浏览器
  7. 基于SSM的物业管理系统-JSP MYSQL小区物业费管理系统
  8. gmt绘制江苏省高程异常图
  9. 私藏的18个黑科技网站,想找什么软件就找什么软件!!!
  10. 新疆财大计算机科学,新疆财经大学计算机科学与工程学院学生参加了多项专业赛事...