美文网首页
Android-->电话广播的监听

Android-->电话广播的监听

作者: angcyo | 来源:发表于2017-04-27 08:46 被阅读970次

1:AndroidManifest.xml 注册广播

<!--打电话广播-->
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>
<!--监听电话状态-->
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<receiver android:name=".service.PhoneBroadcastReceiver">
    <intent-filter android:priority="1000">
        //主动打电话时,发送的广播
        <action android:name="android.intent.action.NEW_OUTGOING_CALL"/>
        //电话状态改变时,发送的广播 (振铃,挂断,接通)
        <action android:name="android.intent.action.PHONE_STATE"/>
    </intent-filter>
</receiver>

2:onReceive

@Override
public void onReceive(Context context, Intent intent) {
    log.info("收到电话广播:{}", intent == null ? "null" : intent.getAction());

    // 如果是拨打电话
    if (intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL)) {
        //拨打电话会优先,收到此广播. 再收到 android.intent.action.PHONE_STATE 的 TelephonyManager.CALL_STATE_OFFHOOK 状态广播;

        String phoneNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
        log.info("call OUT:{}", phoneNumber);//获取拨打的手机号码
    } else {
        // 如果是来电
        TelephonyManager tManager = (TelephonyManager) context
                .getSystemService(Service.TELEPHONY_SERVICE);
        //电话的状态
        switch (tManager.getCallState()) {
            case TelephonyManager.CALL_STATE_RINGING:
                //等待接听状态
                mIncomingNumber = intent.getStringExtra("incoming_number");
                log.info("RINGING :" + mIncomingNumber);
                break;
            case TelephonyManager.CALL_STATE_OFFHOOK:
                //接听状态
                break;
            case TelephonyManager.CALL_STATE_IDLE:
                //挂断状态
                break;
        }
    }
}

3:附加阅读
如果需要挂断电话参考: (可以模拟耳机线上的接听和挂断广播, 实现相应的功能.)
http://gqdy365.iteye.com/blog/2173057
http://bbs.51cto.com/thread-1078059-1.html
http://blog.csdn.net/sodino/article/details/6181610

相关文章

  • Android-->电话广播的监听

    1:AndroidManifest.xml 注册广播 2:onReceive 3:附加阅读如果需要挂断电话参考: ...

  • android broadcast

    1.监听系统发送的一个广播这里我们监听一下用户打电话时系统发出的广播 在Manifest.xml文件中注册监听哪一...

  • BroadCast

    网络状态监听 开机广播监听 发送广播 发送标准广播

  • 监听拨打电话(静态注册) 踩过的坑

    【1】 监听 拨打电话 的状态: 挂断(空闲) --》 接听 --》 挂断【注意】 【2】注册 广播接收者

  • 2018年Android的保活方案效果统计

    一、常见保活方案 1、监听广播:监听全局的静态广播,比如时间更新的广播、开机广播、解锁屏、网络状态、解锁加锁亮屏暗...

  • 2020-07-07蓝牙电话apk的实现及源码分析(1)

    蓝牙电话apk实现 只需要两步: 1.注册 BluetoothHeadsetClientCall 相关广播监听来电...

  • Home的好基友啊哈哈

    Home按键手势监听 home 按键监听需要打开广播进行监听,同时需要使用动态注册。 分别进行广播的注册和注销,在...

  • tf

    广播 监听 launch file

  • android网络监听学习笔记

    网络变化android自带广播、采用广播接收器接收网络变化的监听 自定义广播接收 为了方便全局监听在baseact...

  • Android广播基础概念

    定义 广播:是一个全局的监听器 分为两个角色:广播发送者、广播接收者 作用 监听/接收应用App发出的广播消息,并...

网友评论

      本文标题:Android-->电话广播的监听

      本文链接:https://www.haomeiwen.com/subject/cokgzttx.html