问题描述:当应用中需要对来电这一状态进行处理时(例如来电时显示来电话号码归属地等),就需要对电话状态进行监听。

解决步骤:1.对电话状态的监听最好是放在服务中,因为有一种服务的启动方式可以不依赖于activity的生命周期,即使activity被销毁,服务依然在后台运行。因此创建一个Myservice extends Service;

2.创建一个类MyPhoneStateListener extends PhoneStateListener,手动重写电话改变会触发的方法,代码如下:

          public void onCallStateChanged(int state, String incomingNumber) {switch (state) {case TelephonyManager.CALL_STATE_IDLE://空闲状态//实现自己的业务逻辑break;case TelephonyManager.CALL_STATE_OFFHOOK://摘机状态,至少有个电话活动,该活动或是拨打或是通话
                                //实现自己的业务逻辑
 break;case TelephonyManager.CALL_STATE_RINGING://响铃状态 
                                //实现自己的业务逻辑
 break;default:break;}super.onCallStateChanged(state, incomingNumber);}

3.重写Service中的onCreate()方法和onDestroy()方法,代码如下:
        @Overridepublic void onCreate() {// 1.获取电话管理者对象mTM = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);mMyPhoneStateListener = new MyPhoneStateListener();mTM.listen(mMyPhoneStateListener, PhoneStateListener.LISTEN_CALL_STATE);super.onCreate();}
                     当服务销毁的时候,取消电话状态的监听。
        @Overridepublic void onDestroy() {// 取消电话状态的监听if (mTM != null && mMyPhoneStateListener != null) {mTM.listen(mMyPhoneStateListener, PhoneStateListener.LISTEN_NONE);}super.onDestroy();}              

                      这样,一旦服务被开启,就会一直监听来电的状态。

Android中如何监听手机电话状态相关推荐

  1. Android中如何监听手机GPS打开状态

    位置坐标监听.GPS卫星状态监听在Android应用中常见,我们是否一进入应用就注册相应的监听? 答案当然不是的.比如,手机的GPS没有打开,而我们注册了监听,那有什么用呢? 所以,我们应该实时监听手 ...

  2. Android 来去电监听,电话挂断

    android:enabled="true" android:process=":PhoneListenService"> public class Ph ...

  3. Android开发之监听软键盘状态(弹出收回)

    版权申明]非商业目的注明出处可自由转载 博文地址:https://blog.csdn.net/ShuSheng0007/article/details/81511764 出自:shusheng007 ...

  4. Android开发之监听手机来电

    TelephonyManager是一个管理手机通话状态.电话网络信息的服务类,该类提供了大量的getXxx(),方法获取电话网络的相关信息.关于TelephonyManager的详解可以参照:Andr ...

  5. android 中如何监听按键的长按事件

    1,key -- 实体按键, 现在手机物理按键越来越少 常见的有 KEYCODE_VOLUME_DOWN/UP KEYCODE_POWER KEYCODE_BACK KEYCODE_HOME KEYC ...

  6. 在Android中实现监听 返回键,主键,菜单键

    一.监听 返回键 onKeyDown方法和onBackPressed方法 onKeyDown: 是当某个按键被按下是触发.所以也有人在点击返回键的时候去执行该方法来做判断.(该方法只是android ...

  7. android 2.1 监听电话状态并自动接听来电

    一.开发环境       Elispse5.5,JDK1.6,Aadroid 2.1 二.开发中使用到的重点技术点:       距离感应(SENSOR_SERVICE ),音讯管理(AUDIO_SE ...

  8. android监听卡1电话,Android 监听 SIM 卡状态

    判断是否包含 SIM 卡 /** * 判断是否包含SIM卡 * * @return 状态 */ public static boolean hasSimCard(Context context) { ...

  9. android 监听手机电量变化

    今天,简单讲讲如何监听手机电量的变化. 监听电量是不能静态注册的. 后来上网搜索,发现有五个不能静态注册的广播,这里记录一下,免得下次再后知后觉的发现并惊讶于自己的笨拙. 不能静态注册的广播: and ...

最新文章

  1. ubuntu php上传文件,Ubuntu中增加apache上传文件大小限制(突破Aapache默认2M上传限制)...
  2. 盘丝洞服务器维护,9月27日“盘丝洞”等服务器停机更新
  3. 【postgresql初始化失败】initdb: invalid locale settings; check LANG and LC_* environment variables(之二)
  4. mysql eval,mysql中是否有类似于eval的写法的,答案在这里
  5. [vue] 在.vue文件中style是必须的吗?那script是必须的吗?为什么?
  6. MySQL04WHERE关键字
  7. 如何正确的开始用 Go 编程
  8. TJU_SCS_软件测试_Lab1
  9. oracle注释 kole_t2u,oracle4
  10. vue3 ts 手动封装message消息组件
  11. Tone mapping进化论
  12. 思必达软件督查督办软件技术开发与设计
  13. 如何准备机器学习数据集_机器学习演练第一部分:准备数据
  14. 校内互测题 by LMY (FSN)
  15. JSP常用标记——(web基础学习笔记)
  16. 一行降低 100000kg 碳排放量的代码!
  17. 换零钱程序c语言,《SICP》换零钱的递归法与迭代法
  18. 计算机专业助我成长400字作文,成长作文400字
  19. 串行通信协议小结(Serial Protocols)(1)
  20. React Hooks---useState/useEffect/useContext的基本使用

热门文章

  1. java:听歌姿势~~o(*^@^*)o之酷我
  2. 三年啦,跳槽成功的Android开发面经总结!
  3. 使用MindStudio进行MindInsight调优
  4. 4.9 论文笔记 |【USENIX 2020】That Was Then, This Is Now
  5. 科学效法自然:微软研究人员测试AI控制的滑翔机
  6. osg中漫游器的原理(一)
  7. (初学者)C语言生成奇魔方阵
  8. [Swift]LeetCode875. 爱吃香蕉的珂珂 | Koko Eating Bananas
  9. 宋代极简美学,领先世界一千年
  10. 让自己的知识形成一个体系