Android 监听来去电状态的实现

Posted 刘某人程序员

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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.有机会线下交流聚会

以上是关于Android 监听来去电状态的实现的主要内容,如果未能解决你的问题,请参考以下文章

CM13添加SudaMod开源项目的来去电归属地,查看commit提交记录

android电话状态的监听

Android使用BroadcastReceiver监听网络状态

Android使用BroadcastReceiver监听网络状态

Android4.4电池管理

android 监听屏幕是不是被触碰过?