在android中监听呼出电话(电话拦截、修改呼出电话)

在android中向外拨打电话时系统会发出一个有序广播,虽然该广播最终会被拔号器里的广播接收者所接收并实现电话拔打,但我们可以在广播传递给拔号广播接收者之前先得到该广播,然后清除传递给拔号广播接收者的电话号码,在拔号广播接收者接收到该广播时,由于电话号码为null,因此取消电话拔打。
具体实现:
1.定义广播接收者接收 android.intent.action.NEW_OUTGOING_CALL
<receiver android:name=".OutgoingCallReceiver">
    <intent-filter android:priority="1">
         <action android:name="android.intent.action.NEW_OUTGOING_CALL"/>
    </intent-filter>
</receiver>

2.添加权限
<uses-permission  android:name="android.permission.PROCESS_OUTGOING_CALLS"/>


3.实现代码
public class OutgoingCallReceiver extends BroadcastReceiver {
     public void onReceive(Context context, Intent intent) {
           setResultData(null); //清除电话,广播被传给系统的接收者后,因为电话为null,取消电话拔打
      
          // 同样如果你想修改外拔的电话号码,可以这样做
          // String phone = getResultData();//得到外拔电话
          // setResultData(“12593”+ phone);//在电话前面加上12593
     }
}

注:此示例,本人未经测试,记录下来只为他日阅读学习;
转自:http://zhaohaiyang.blog.51cto.com/2056753/902492
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值