【问题标题】:How to cancel outgoing call in android dev.?如何取消android dev中的拨出电话?
【发布时间】:2015-03-01 13:13:08
【问题描述】:

我只想知道如何在android dev中取消拨出电话?有没有可能用最简单的编码方式?

【问题讨论】:

    标签: android call


    【解决方案1】:

    您需要创建一个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>
    

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

    【讨论】:

    • 不是取消通话!!我在 Android 4.2 设备上进行了测试。另外,简单地调用abortBroadcast() 我猜也无济于事,因为它只设置了指示该接收器应该中止当前广播的标志。没办法它应该“取消”调用
    【解决方案2】:

    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" /> 
    

    【讨论】:

      猜你喜欢
      • 2010-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-10
      相关资源
      最近更新 更多