一.介绍

在应用层监听通话状态只有三种,从TelephonyManager.java中注释可知这三种状态含义如下:

CALL_STATE_IDLE 空闲态(没有通话活动)[j8>11131901166E070F0D7E11131901166E070F0D]

CALL_STATE_RINGING 包括响铃、第三方来电等待

CALL_STATE_OFFHOOK 包括dialing拨号中、active接通、hold挂起等

由上可知,active接通状态没有单独给出,所以我们无法得知电话是否接通了,

因此需要其它手段来获取更多的精确通话状态,遍查网络资料,一般有两种方法!

二.监听9种通话状态

法一.使用系统api监听

条件:

1.需要权限android.permission.READ_PRECISE_PHONE_STATE、app打包时需要系统签名、安装在系统目录等

2.onPreciseCallStateChanged 精确通话回调api在android.jar中被hide了, 可以使用反射或没有被hide的android.jar解决

法二.读取Logcat通信日志

条件: 1.android 4.1以上需要root权限,android 4.1以下版本只需添加日志权限android.permission.READ_LOGS 2.读取通信状态:在root状态下执行命令 logcat -v time -b radio

logcat日志被划分为以下几个缓冲区     -b     main   — 主日志缓冲区(默认,普通app应用)     radio  — 无线/电话相关日志缓冲区        events — 事件相关日志缓冲区     system — 系统相关日志缓冲区

原文:https://www.cnblogs.com/1818logs/p/11223719.html

android判断进入通话状态,Android-9种通话状态(精确)相关推荐

  1. android判断sd u盘,[Android Framework]获取U盘 SD 状态

    Android 4.4 SD 和 U盘 的状态 通过获取StorageVolume 类来判断 是sd还是U盘.我们来看一下这个类 package android.os.storage; import ...

  2. java线程6种状态转换,java6种线程状态

    网上好多帖子把操作系统的线程状态跟java的线程状态混为一谈,导致误导了好多人: 现在根据java的Thread类来分析java的线程状态; java.lang.Thread内部枚举State pub ...

  3. 多线程(六)线程的五大生命周期,六个状态,七种基础状态

    关于线程的六个状态可以看一下:Java线程的6个状态 建议先看一下上面的文章,再看下面的文章. 线程的五大生命周期 NEW:         线程新建状态 RUNNABLE:     就绪状态 RUN ...

  4. android判断usb已连接,android 判断是否有网络连接(usb连接电脑问题)

    找到很多判断网络连接的工具类,如下: package client.verbank.mtp.allone.util; import android.app.Activity; import andro ...

  5. android 判断华为系统版本号,Android获取系统(ROM)类别及版本号

    很多时候我们需要知道用户当前使用的是什么系统,甚至是系统的版本号(比如MIUI V7.V8)来进一步处理业务逻辑,比如打开系统权限设置界面. 感谢国内各大Android手机/系统生产商,让我们这些An ...

  6. android判断是否json格式,Android判断json格式将错误信息提交给服务器

    开发中发现, 服务器偶尔会发送错误格式 json 给 Android 客户端, 导致 Android 客户端 json解析失败, 应用异常. 并非服务器有意坑客户端, 而是客户端请求服务器数据时, 除 ...

  7. android判断多个按钮,Android开发之判断有无虚拟按键(导航栏)的实例

    判断有无虚拟按键(导航栏) 现在很大一部分手机没有虚拟按键,一部分有.我们在做适配的时候可能会用到这方面的知识. 例如:屏幕填充整个屏幕的时候,没办法只能连导航栏一起填充了,但是这个不是我们想要的,我 ...

  8. android判断参数非空,Android Studio注释模板Live Templates参数获取不到为null的一些

    Android Studio注释模板Live Templates参数获取不到为null的一些 Android Studio注释模板Live Templates参数获取不到为null的一些解决方法 提示 ...

  9. android 判断 音乐是否播放,Android如何判断当前手机是否正在播放音乐并获取有关正在播放的音乐的信息...

    我想实现以下情况,以确定音乐是否正在Android手机上播放,如果是,则通过特定手势进行播放, 或单击一个按钮分享我当前正在听的音乐. 第一步是确定当前是否正在播放音乐. 一开始,我认为这有点复杂. ...

  10. android 判断有无sim卡,Android判断手机里是否有SIM卡

    由于项目的需要,要判断手机里是否有sim卡.在网上找了一下资料结果发现,网上的资料很多都是一样的,都是判断sim卡的状态,把代码添加进去后发现不能满足需求.然后就自己看了一下文档.代码如下. /** ...

最新文章

  1. 阿里云OSS搭建移动应用直传服务的.Net C#示例
  2. php接口和java接口_java和php接口的区别是什么
  3. Linux内存管理段页
  4. 事务屏幕创建tcode_数据库并发事务存在的问题(脏读、不可重复读、幻读等)...
  5. OKapi BM25 算法介绍
  6. ubuntu14.04 配置C/C++开发IDE
  7. 五个最佳编程文本编辑器
  8. 同样是OpenJDK8,有的平台需要libpng12,有的不需要
  9. python-pip : Depends: python-setuptools (= 0.6c1) 问题
  10. android 不同机型 bug,[Android] Opengl ES 机型适配 bug 汇总
  11. 个人使用整理的部分测试数据整理-输入类2022
  12. 神奇软件:良心浏览器 纯净无捆绑,还有亿点点好用360极速浏览器X
  13. win10添加计算机语言,win10输入法,详细教您怎么在win10里添加输入法
  14. 浅谈安科瑞无线测温系统在生物制药工厂中的应用
  15. HTML5期末大作业:订餐系统网站设计——绿色的网上订餐系统(23个页面) 网页作品 订餐系统网页设计作业模板 学生网页制作源代码下载
  16. 用Python的Seaborn库绘制17个超好看图表
  17. C++我的世界源代码
  18. 小白到大白-远程控制电脑
  19. github配置ssh key密钥的方法
  20. nyoj325 zb的生日(DFS)

热门文章

  1. 北邮毕业十二年---摘自一个人
  2. 【Python之Numpy篇】数组重塑
  3. 【027】基于Vue+Nodejs+Mysql模仿微博的图片分享系统(管理员、用户两种身份)(含源码、数据库、实验报告、运行教程)
  4. 服务注册中心Eureka
  5. 《乐高EV3机器人搭建与编程》一1.1 打开MINDSTORMS EV3包装盒
  6. 哈希函数--区块链的back bone
  7. 最小二乘法求回归方程的推导
  8. SpringBoot如何读取配置文件(@Value/@ConfigurationProperties/Environment)
  9. AndroidStudio提交代码到Github的登录不了BUG错误提示:http://127.0.0.1:63342/api/github/oauth/authorization_code
  10. 铁道部改制:大伙儿想知道的其实很简单