Android中如何监听手机电话状态
问题描述:当应用中需要对来电这一状态进行处理时(例如来电时显示来电话号码归属地等),就需要对电话状态进行监听。
解决步骤: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中如何监听手机电话状态相关推荐
- Android中如何监听手机GPS打开状态
位置坐标监听.GPS卫星状态监听在Android应用中常见,我们是否一进入应用就注册相应的监听? 答案当然不是的.比如,手机的GPS没有打开,而我们注册了监听,那有什么用呢? 所以,我们应该实时监听手 ...
- Android 来去电监听,电话挂断
android:enabled="true" android:process=":PhoneListenService"> public class Ph ...
- Android开发之监听软键盘状态(弹出收回)
版权申明]非商业目的注明出处可自由转载 博文地址:https://blog.csdn.net/ShuSheng0007/article/details/81511764 出自:shusheng007 ...
- Android开发之监听手机来电
TelephonyManager是一个管理手机通话状态.电话网络信息的服务类,该类提供了大量的getXxx(),方法获取电话网络的相关信息.关于TelephonyManager的详解可以参照:Andr ...
- android 中如何监听按键的长按事件
1,key -- 实体按键, 现在手机物理按键越来越少 常见的有 KEYCODE_VOLUME_DOWN/UP KEYCODE_POWER KEYCODE_BACK KEYCODE_HOME KEYC ...
- 在Android中实现监听 返回键,主键,菜单键
一.监听 返回键 onKeyDown方法和onBackPressed方法 onKeyDown: 是当某个按键被按下是触发.所以也有人在点击返回键的时候去执行该方法来做判断.(该方法只是android ...
- android 2.1 监听电话状态并自动接听来电
一.开发环境 Elispse5.5,JDK1.6,Aadroid 2.1 二.开发中使用到的重点技术点: 距离感应(SENSOR_SERVICE ),音讯管理(AUDIO_SE ...
- android监听卡1电话,Android 监听 SIM 卡状态
判断是否包含 SIM 卡 /** * 判断是否包含SIM卡 * * @return 状态 */ public static boolean hasSimCard(Context context) { ...
- android 监听手机电量变化
今天,简单讲讲如何监听手机电量的变化. 监听电量是不能静态注册的. 后来上网搜索,发现有五个不能静态注册的广播,这里记录一下,免得下次再后知后觉的发现并惊讶于自己的笨拙. 不能静态注册的广播: and ...
最新文章
- 173. Binary Search Tree Iterator
- 【实战演练】两种方法让 Docker 帮您快速构建应用程序
- C++写的一个简单的词法分析器(分析C语言)
- python matplotlib.pyplot 如何实时绘制三维动态窗口?(可鼠标拖动角度)
- TabHost两种实现方式
- 在线便携小电视源码 云电视源码
- Spring 整合 Mybatis
- java基础学习之对象转型
- 用U盘安装一个Linux系统
- 号称“绝对安全”的量子通信到底是什么?
- nyoj 16 矩形嵌套第七届河南省acm省赛H题
- 2021-09-09321. 拼接最大数 单调栈
- 第六次全国人口普查数据分析
- ext2文件系统详解
- 无标号有根树计数与无标号无根树计数
- Java爬去教务系统后怎么发布_GitHub - canliture/CrawlerCourseTable: 课程表的java爬虫实现--基于“强智教务系统”...
- 设置CRT使用Console连接网络设备
- Java环境变量配置超详细教程
- 安卓9.0系统出现 CLEARTEXT communication to XX not permitted by network security policy
- Unity动画状态机学习笔记
热门文章
- Spring Boot Vue Element入门实战(完结)
- java中的包如何定义_java中包的定义与使用
- 关于新生培训的心得体会
- 中国人民银行和公安部的联网核查公民身份信息系统存在bug
- 【网站制作视频教程】-第15讲 html框架技术!-传智播客
- 内网安全 隐藏通信隧道技术——传输层.(遨游于 内网任何主机)
- 日本组织女警严打电车色狼
- php json字符串序列化,JSON序列化与反序列化实现方法(附代码)
- 华硕C520UP升级
- 检测到 #include 错误。请更新 includePath。无法打开 源 文件xxx