拦截电话--- 关于利用反射 调用系统 hiden的 方法
首先 需要知道 关于电话的操作 都在 TelephonyManager这个 类中
//初始化 TelephonyManager
TelephonyManager mTelephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
如果想监听 电话事件 需要给 TelephonyManager 设置 一个监听 即 listen方法
MyPhoneListener myPhoneListener = new MyPhoneListener();mTelephonyManager.listen(myPhoneListener,PhoneStateListener.LISTEN_CALL_STATE);
需要实现PhoneStateListener 这个监听方法:
class MyPhoneListener extends PhoneStateListener {@Overridepublic 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 (incomingNumber.equals(et.getText().toString().trim())) {Toast.makeText(getApplicationContext(), "adfadg", 0).show();System.out.println("被哥拦截了");// 下面 执行挂断操作endCall();}break;default:break;}}}
挂断操作 需要调用 endCall()方法 但是 这个方法只在android1.5 之前 可以使用 之后 被隐藏了 所以 若想 使用这个方法 可以使用反射的方法使用
所谓反射 就是可以调用或者修改 方法的权限 属性 等。。。。
public void endCall() {try {Class<?> clazz = getClassLoader().loadClass( //调用类加载器 参数是 要调用的类的 完整包名"android.os.ServiceManager");Method method = clazz.getDeclaredMethod("getService", String.class); // 参数是 方法的名字 和方法的参数类型 IBinder iBinder = (IBinder) method.invoke(null, Context.TELEPHONY_SERVICE); ITelephony iTelephony = ITelephony.Stub.asInterface(iBinder); // 此处关系到ALDT 还没深究 日后探寻iTelephony.endCall();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}
这样 就可以调用系统隐藏的函数了 endCall()
拦截电话--- 关于利用反射 调用系统 hiden的 方法相关推荐
- C# 利用反射调用类下的方法
//1.Load(命名空间名称,即程序集),GetType(命名空间.类名) Type type = Assembly.Load("DapperNet").GetType(&quo ...
- Android 反射、代理调用系统隐藏API方法与接口类连接Wi-Fi
本文转载自:http://www.xwdoor.net/android-reflection-proxy-call-system-hidden-api-method-and-interface-cla ...
- Android P+通过反射调用系统API实现高级功能
Android P+通过反射调用系统API实现高级功能 1. 打开隐藏API 1.1 导入FreeReflection包 1.2 打开隐藏API 2. 反射系统服务并调用相应方法 通过反射调用系统AP ...
- Android开发中调用系统窗口的方法
//直接拨号 Intent callIntent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:12345678")); start ...
- 【Java】Java反射调用可变参数的方法
文章目录 1.概述 1.概述 因为要Java反射调用可变参数的方法,所以参考了这篇文章:https://www.cnblogs.com/huqingchen/p/5979936.html 但是测试过程 ...
- ios 调用系统应用的方法 应用间跳转的方法
声明一个私有方法: #pragma mark - 私有方法 -(void)openUrl:(NSString *)urlStr{//注意url中包含协议名称,iOS根据协议确定调用哪个应用,例如发送邮 ...
- 利用反射动态实例化类执行方法并传值
/// <summary> /// 利用反射动态实例化类执行方法并传值 /// </summary> /// <param ...
- java 反射调用get方法_Java通过PropertyDescriptor反射调用set和get方法
本文实例为大家分享了PropertyDescriptor反射调用set和get方法,供大家参考,具体内容如下 第一段: package com.zhoushun; import java.lang.r ...
- android利用反射调用截屏api,Android利用反射机制调用截屏方法和获取屏幕宽高的方法...
想要在应用中进行截屏,可以直接调用 View 的 getDrawingCache 方法,但是这个方法截图的话是没有状态栏的,想要整屏截图就要自己来实现了. 还有一个方法可以调用系统隐藏的 screen ...
最新文章
- clion pycharm 报错 bash: line 0: cd: /xxx: No such file or directory
- 1.单一职责原则(Single Responsibility Principle)
- python—高阶函数
- Git远端库(GitHub)及Git流
- 【SpringCloud】 failed to req API:/nacos/v1/ns/instance after all servers code:500 msg Read timed out
- 基于JAVA+Servlet+JSP+MYSQL的学生卡消费统计管理系统
- 计算机组成原理实验:静态随机存储器实验
- Docker网桥模式ping不通宿主机
- Linux下父进程子进程先后终止的不同处理
- 微信小程序里面的标签和html标签的对比、微信小程序基础之常用控件
- 10公斤无人机动力测试台测试-拉力、扭矩、转速
- Docker容器——重命名镜像的TAG
- 北京市中 高英语听说计算机考,北京市教育委员会关于听力及言语障碍考生参加2019年中考英语听说计算机考试有关事项的通知...
- 01章 象数易理篇之一
- socket简介及java实例
- linux shell 笔记
- android 9.0 Launcher3 去掉抽屉式,显示所有 app
- CBMI 2022 | 蒸馏细粒度对齐分数以实现高效的图文匹配和检索
- RK3588芯片支持8K视频的硬编解码
- 微信小程序授权登录获取用户名和昵称