我只是想知道如何在android dev中取消传出呼叫。有可能用最简单的编码方式吗?
答案 0 :(得分:2)
您需要创建一个将在操作中调用的BroadCastReceiver
:NEW_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" />