我想创建一个应用程序,一旦应用程序启动,它将显示两个按钮(开始和停止按钮),一旦用户单击开始按钮,呼叫功能将被阻止一段时间,直到用户再次启动应用程序并单击停止按钮以停止此功能。任何帮助请紧急
简而言之,我会告诉我想通过仅使用此活动阻止来自我手机的拨出电话
请有任何办法吗???
答案 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 ,这是阻止拨出电话的示例。