通往Android的神奇之旅之广播接收器监听拨打电话

监听拨打电话,通过广播接收器Android应用从系统这边监听用户是否在拨打电话,不需要再activity中调用,当系统发出与自定义广播接收器匹配的广播后,会进入到广播接收器的相应操作中。具体的响应在BroadcastReceiver里面的里面的onReceive方法中实现。
首先创建自定义广播接收器,让他继承自系统广播接收器BroadReceiver

package com.example.jack.broadcastforcall.MyBraodcastReceiver;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;

/**
 * 分别打印两行log如下
 * E/TAG: 打电话13644876837
 * E/TAG: +8613644876837
 */

public class BroadCastReceiverForCall extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {

        Log.e("TAG","打电话"+getResultData());
//        获得广播监听到的数据
        String phone = getResultData();

        String newPhone = "+86"+phone;

//        设置广播监听到的数据
        setResultData(newPhone);
        Log.e("TAG",getResultData());
    }
}

广播是Android四大组件之之一,所以使用广播,在创建好广播接收器之后一定要记得在mainfest文件中注册广播接收器,receiver是广播标签,在intent-filter中描述广播接收器的类型。

<receiver android:name=".MyBraodcastReceiver.BroadCastReceiverForCall">
            <!--自定义广播接收器类型-->
            <intent-filter>
                <action  android:name="android.intent.action.NEW_OUTGOING_CALL"/>
            </intent-filter>
</receiver>

另外需要注意的是广播监听的类别是否涉及用户权限,不要忘记在mainfest文件中申请权限。

<!--监听用户拨打电话需要获取隐私权限-->
    <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值