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

解决步骤: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. 173. Binary Search Tree Iterator
  2. 【实战演练】两种方法让 Docker 帮您快速构建应用程序
  3. C++写的一个简单的词法分析器(分析C语言)
  4. python matplotlib.pyplot 如何实时绘制三维动态窗口?(可鼠标拖动角度)
  5. TabHost两种实现方式
  6. 在线便携小电视源码 云电视源码
  7. Spring 整合 Mybatis
  8. java基础学习之对象转型
  9. 用U盘安装一个Linux系统
  10. 号称“绝对安全”的量子通信到底是什么?
  11. nyoj 16 矩形嵌套第七届河南省acm省赛H题
  12. 2021-09-09321. 拼接最大数 单调栈
  13. 第六次全国人口普查数据分析
  14. ext2文件系统详解
  15. 无标号有根树计数与无标号无根树计数
  16. Java爬去教务系统后怎么发布_GitHub - canliture/CrawlerCourseTable: 课程表的java爬虫实现--基于“强智教务系统”...
  17. 设置CRT使用Console连接网络设备
  18. Java环境变量配置超详细教程
  19. 安卓9.0系统出现 CLEARTEXT communication to XX not permitted by network security policy
  20. Unity动画状态机学习笔记

热门文章

  1. Spring Boot Vue Element入门实战(完结)
  2. java中的包如何定义_java中包的定义与使用
  3. 关于新生培训的心得体会
  4. 中国人民银行和公安部的联网核查公民身份信息系统存在bug
  5. 【网站制作视频教程】-第15讲 html框架技术!-传智播客
  6. 内网安全 隐藏通信隧道技术——传输层.(遨游于 内网任何主机)
  7. 日本组织女警严打电车色狼
  8. php json字符串序列化,JSON序列化与反序列化实现方法(附代码)
  9. 华硕C520UP升级
  10. 检测到 #include 错误。请更新 includePath。无法打开 源 文件xxx