如何在android dev中取消拨出电话?

时间:2015-03-01 13:13:08

标签: android call

我只是想知道如何在android dev中取消传出呼叫。有可能用最简单的编码方式吗?

2 个答案:

答案 0 :(得分:2)

您需要创建一个将在操作中调用的BroadCastReceiverNEW_OUTGOING_CALL

Java类:

public class CallReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(final Context context, final Intent intent) {
        if (intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL)){
            setResultData(null);
            abortBroadcast(); // cancel the call
        }
    }
}

清单声明

修改 不要忘记添加去许可

<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" /> 

<receiver android:name=".CallReceiver" >
    <intent-filter android:priority="2147483647" >
        <action android:name="android.intent.action.NEW_OUTGOING_CALL" />
    </intent-filter>
</receiver>

使用此代码,任何通话都将被取消,如果您的手机上有此应用,则无法拨打电话

答案 1 :(得分:1)

1.创建优先级为0的BroadcastReceiver。

<receiver android:name=".YourReceiver" >
    <intent-filter android:priority="0" >
        <action android:name="android.intent.action.NEW_OUTGOING_CALL" />
    </intent-filter>

2.在BroadcastReceiver中拦截其onReceive方法中的ACTION_NEW_OUTGOING_CALL意图

public void onReceive(final Context context, final Intent intent) {
        if (intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL)){
            setResultData(null);
        }
    }

3.在onReceive中调用setResultData(null),如上面的代码/方法

所示

在AndroidManifest.xml文件中添加以下权限

<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />