Android Studio中拦截电话的方法

在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();
}


猜你喜欢

转载自blog.csdn.net/baifenbaizhenxin/article/details/51236237