Android 监听来去电状态的实现

本文授权发布公众号【刘桂林】,星球【Hi Android】

在Android中我们想要实现监听电话状态一般都会通过TelephonyManager来监听,他提供了一个PhoneStateListener的回调方式,当然,他也是提供了广播的通知方式,如果你想要实现此功能,那么这篇文章你可以看看,我将通过这两种方式来教你如何实现此功能。

先来看下TelephonyManager的实现方式:

来看下此代码,首先我初始化了一个TelephonyManager之后直接监听PhoneStateListener,在PhoneStateListener中有一个回调onCallStateChanged里有两个餐数,一个为状态,一个是号码,这样,我们就可以实现监听了,是不是比较简单,不过要记住的是需要添加权限:

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

同样的,当前系统版本大于或者等于M的话需要动态申请,可以看下onCreate方法中的示例,接着我们来看下广播如何实现吧。

看这段代码,我监听了两个广播,一个是拨号广播,一个是状态广播,然后再状态广播中和之前一样判断三个电话状态,得到如下打印:

至此,我们就可以监听到状态了,同样的,我们需要在静态文件里注册

<receiver
    android:name=".CallStateReceiver"
    android:enabled="true">
    <intent-filter>
        <action android:name="android.intent.action.PHONE_STATE" />
        <action android:name="android.intent.action.NEW_OUTGOING_CALL" />
    </intent-filter>
</receiver>

有兴趣可以加入我的星球:Hi Android , 里面可都是我手撸的新鲜文章,高质量你值得拥有!

进入星球你可以做什么?

1.我的所有视频可以观看
2.发布提问贴可以得到满意的答案
3.可指定我写你感兴趣的技术文章
4.初学者可配套视频辅导
5.有机会线下交流聚会
在这里插入图片描述

©️2020 CSDN 皮肤主题: 成长之路 设计师: Amelia_0503 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值