首页 > 移动平台 > 详细

Android开发之通过反射获取到挂断电话的API

时间:2016-02-01 18:26:00      阅读:186      评论:0      收藏:0      [点我收藏+]

Android开发黑名单工具类,需要用到挂断电话的API,但是该API处于隐藏状态,需要通过反射得到该方法。、

步骤:

1.通过当前类获取到ServiceManager的字节码

Class< ? > clazz = CallSafeService.class.getClassLoader().loadClass("android.os.ServiceManager");

2.使用getDeclaredMethod()方法得到该方法

Method method = clazz.getDeclaredMethod("getService", String.class);

3.通过invoke()方法执行该方法,获取到IBinder对象

IBinder ibinder = (IBinder) method.invoke(null, TELEPHONY_SERVICE);

4.获取到了IBinder对象了,就可以得到ITelephony方法

ITelephony iTelephony = ITelephony.Stub.asInterface(ibinder);

5.使用ITelephony中的endCall()方法,实现挂断电话的功能。

iTelephony.endCall();

 

其中需要把android的AIDL拷贝到当前工程下,且ITelephony.aidl的包名必须保持一致

ITelephony.aidl包名:com.android.internal.telephony

ITelephony.aidl还需要用到NeighboringCellInfo.aidl文件,把这个文件也拷贝到当前工程下

NeighboringCellInfo.aidl包名:android.telephony

 

然后就可以使用了挂断电话功能了。

Android开发之通过反射获取到挂断电话的API

原文:http://www.cnblogs.com/liyiran/p/5175756.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!