Android Studio中拦截电话的方法

来源:互联网 发布:读懂中国经济数据 编辑:程序博客网 时间:2024/05/01 19:06

在Android Studio中利用AIDL和反射技术拦截来电。(项目显示模式为Project)

1、项目的src文件夹下新建文件夹(src右键——new——Package),取名“aidl”;

2、在新建文件夹下新建文件(右键——new——FIle),取名“ITelephony.aidl”;

3、在ITelephony.aidl文件中输入如下内容:

package com.android.internal.telephony;interface ITelephony{    boolean endCall();    void answerRingingCall();}
4、然后选中菜单栏的Build——Clean Project,再Build——Make Project,此时会在项目的build文件夹下形成如下目录:


5、此时在需要拦截来电的逻辑中加入如下代码:

try {//利用aidl和反射挂断电话    Class 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();}


0 0