Android 拒接来电

Android reject incoming call

在我的 android 项目中(目标 sdk 版本为 23),我想拒绝来电。 我知道对此有很多疑问,特别是

1 How to import com.android.internal.telephony.ITelephony to the Android application

2 How to Reject a call programatically in android

3 How to reject any incoming call when I have already detected it

在第一个 link 中,建议的解决方案是在接口 ITelephony 上使用反射,因为它是一个内部接口。但此解决方案使用 MODIFY_PHONE_STATE 权限,该权限只能授予系统应用程序,因此无论如何都行不通。

从第二个和第三个 link 开始,我了解到解决方案是从 here 复制 ITelephony,然后将其放入我的解决方案中的 com.android.internal.telephony 的新包中。 问题是这个界面有很多关于find of class android.telephony.RadioAccessFamily的问题(error cannot find symbol class RadioAccessFamily), class 在 platform framework base of android.

有解决此问题的想法吗?

我自己找到了答案。对于其他感兴趣的人,这里here是:

在主文件夹中创建 aidl 文件夹。

在 aidl 文件夹中创建包 com.android.internal.telephony

在包中创建 aidl 文件:

interface ITelephony {      

    boolean endCall(); 
    void answerRingingCall();      

}

有关结束呼叫的代码请参阅 link 中的答案。

并且不需要添加权限

android.permission.MODIFY_PHONE_STATE