首页 > 编程开发 > Android开发 > Android反射获取ITelephony对象以调用endCall方法挂断电话
2016
05-25

Android反射获取ITelephony对象以调用endCall方法挂断电话

Android开发的时候遇到一个拦截来电的需求,但是挂断电话的 endCall() 方法被Google给隐藏了,需要先导入aidl文件并使用反射来获取对应的对象。

首先下载两个aidl文件:ITelephony.aidl NeighboringCellInfo.aidl

放入aidl目录并创建相应的包。

查看 TelephonyManager 的源码,搜索 endCall()

可以看到调用了getITelephony() 方法

遗憾的是该方法被私有化了,但是我们有反射这一大杀器。

现在有两种方案去获取 ITelephony 对象,一种是直接反射 TelephonyManager 的 getITelephony() 方法,另一种是 反射 ServiceManager 的 getService 方法,可以选一种你喜欢的。

方案一:

方案二:

 

最后编辑:
作者:
百度ID:“度娘程序员”,博主。
捐 赠如果您觉得这篇文章有用处,请支持作者!鼓励作者写出更好更多的文章!

发表回复

你的邮箱地址不会被公开,垃圾评论将被删除。

有人回复时邮件通知我