我想制作一个应用程序,一旦应用程序启动,它将显示两个按钮(启动和停止按钮),一旦用户单击启动按钮,调用功能将被阻止一段时间,直到用户再次启动应用程序和单击停止按钮可停止此功能。任何帮助请其紧急
简而言之,我会告诉我想通过仅使用此活动来阻止来自我的手机的拨出电话
请问有什么办法吗???
我想制作一个应用程序,一旦应用程序启动,它将显示两个按钮(启动和停止按钮),一旦用户单击启动按钮,调用功能将被阻止一段时间,直到用户再次启动应用程序和单击停止按钮可停止此功能。任何帮助请其紧急
简而言之,我会告诉我想通过仅使用此活动来阻止来自我的手机的拨出电话
请问有什么办法吗???
您可以使用广播接收器的 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" />
编辑 - 要取消注册广播接收器,请点击此链接
公共类 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>