阻止来自我的Android应用程序的外出呼叫。

时间:2012-11-10 06:02:08

标签: android android-intent

我想创建一个应用程序,一旦应用程序启动,它将显示两个按钮(开始和停止按钮),一旦用户单击开始按钮,呼叫功能将被阻止一段时间,直到用户再次启动应用程序并单击停止按钮以停止此功能。任何帮助请紧急

简而言之,我会告诉我想通过仅使用此活动阻止来自我手机的拨出电话

请有任何办法吗???

3 个答案:

答案 0 :(得分:7)

您可以使用Broaadcast接收器的onReceive方法中的setResultData(null)函数来阻止传出呼叫。

public class BlockOutgoing extends BroadcastReceiver
{
    String number;
    @Override
    public void onReceive(Context context, Intent intent) 
    {
        Log.d("12280", "asdasNumber is-->> " + number);
        number = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
        setResultData(null);
        Toast.makeText(context, "Outgoing Call Blocked" , 5000).show();

    }
}

在清单文件中,您需要像这样注册接收器,

<receiver
            android:name=".BlockOutgoing"
            android:label="@string/app_name" >
            <intent-filter android:priority="1">

<action android:name="android.intent.action.NEW_OUTGOING_CALL" />

            </intent-filter>
        </receiver>

还定义拦截拨出电话的权限

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

修改 - 要取消注册广播接收器,请按照此link

进行操作

答案 1 :(得分:2)

公共类BlockOutgoing扩展了BroadcastReceiver {

String number;
@SuppressLint("WrongConstant")
@Override
public void onReceive(Context context, Intent intent)
{
    // Log.d("12280", "asdasNumber is-->> " + number);
    number = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
    setResultData(null);
    Toast.makeText(context, "Outgoing Call Blocked" , 5000).show();

}

}

   <receiver
        android:name=".BlockOutgoing"
        android:label="@string/app_name" >
        <intent-filter android:priority="1">
            <action android:name="android.intent.action.NEW_OUTGOING_CALL" />

        </intent-filter>
    </receiver>

答案 2 :(得分:0)

阻止拨打电话请查看此 Link ,这是阻止拨出电话的示例。