Android 监听来去电状态的实现

本文较短,阅读大约三分钟


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


先来看下TelephonyManager的实现方式:

       Android 监听来去电状态的实现_第1张图片      

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


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


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

      Android 监听来去电状态的实现_第2张图片      

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

      640?wx_fmt=png     

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


<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.有机会线下交流聚会

640?wx_fmt=jpeg



你可能感兴趣的:(Android 监听来去电状态的实现)