Android-9种通话状态(精确)

Android-9种通话状态(精确),第1张

概述一.介绍 在应用层监听通话状态只有三种,从TelephonyManager.java中注释可知这三种状态含义如下:     CALL_STATE_IDLE 空闲态(没有通话活动)[j8>11131901166E070F0D7E11131901166E070F0D]     CALL_STATE_RINGING 包括响铃、第三方来电等待     CALL_STATE_OFFHOOK 包括dialin

一.介绍
在应用层监听通话状态只有三种,从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 <system,radio,events,main>     main   — 主日志缓冲区(默认,普通app应用)     radio  — 无线/电话相关日志缓冲区        events — 事件相关日志缓冲区     system — 系统相关日志缓冲区

总结

以上是内存溢出为你收集整理的Android-9种通话状态(精确)全部内容,希望文章能够帮你解决Android-9种通话状态(精确)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1123406.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存