欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android拦截外拨电话程序示例

程序员文章站 2023-11-18 12:56:58
拦截监听外拨的电话,并进行处理: 向外拨打电话时系统会发出一个有序广播,虽然该广播最终会被拔号器里的广播接收者所接收并实现电话拔打,但我们可以在广播传递给拔号广播接收者之...

拦截监听外拨的电话,并进行处理:

向外拨打电话时系统会发出一个有序广播,虽然该广播最终会被拔号器里的广播接收者所接收并实现电话拔打,但我们可以在广播传递给拔号广播接收者之前先得到该广播,然后清除传递给拔号广播接收者的电话号码,在拔号广播接收者接收到该广播时,由于电话号码为null,因此取消电话拔打。

复制代码 代码如下:

intent intent = new intent(intent.action_call,uri.parse("tel:110"));
                startactivity(intent);

复制代码 代码如下:

public class outcallreceiver extends broadcastreceiver {
     public void onreceive(context context, intent intent) {
           setresultdata(null); //清除电话,广播被传给系统的接收者后,因为电话为null,取消电话拔打
          // 同样如果你想修改外拔的电话号码,可以这样做
          // string phone = getresultdata();//得到外拔电话
          // setresultdata(“12593”+ phone);//在电话前面加上12593
     }
}

接收外拔电话广播intent,在androidmanifest.xml文件中的<application>节点里订阅此intent:

复制代码 代码如下:

<receiver android:name=".outgoingcallreceiver">
    <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"/>