当前位置: 代码迷 >> Android >> 如何判断android手机打通对方电话了
  详细解决方案

如何判断android手机打通对方电话了

热度:14   发布时间:2016-05-01 13:29:50.0
怎么判断android手机打通对方电话了?
最好不要说用phonestatelistener,这个只能获得 idle、offhook、ringing状态,这其实都不能判断接通的。

------解决方案--------------------
其实这个没有api的
实现的方法是靠log。。
貌似腾讯 的qq通讯录也有这个功能 但是不稳定兼容性不佳
我研究的app都是靠log来实现的

D/RILJ ( 190): [11256]< GET_CURRENT_CALLS [id=1,ACTIVE,toa=129,norm,mt,0,voc,noevp,,cli=1,,0]
通过 logcat -b radio 过滤读取

Java code
        Process localProcess = Runtime.getRuntime().exec("logcat -b radio");        InputStream lips = localProcess.getInputStream();        InputStreamReader lisr = new InputStreamReader(lips);        BufferedReader lbfr = new BufferedReader(lisr);        String str = lbfr.readLine(); 然后判断 是否包含日志 正则匹配下 GET_CURRENT_CALLS.*ACTIVE后台开启一个服务 在开始一个线程。一直读取实现监听。。缺点是不是很灵敏。。貌似 qq通讯录应该也是这么干的。。有时候容易失效
------解决方案--------------------
使用OFFHOOK不能判断接通吗?
------解决方案--------------------
android源码里面是有以下状态的:
IDLE,//待机,没有连接
ACTIVE,//通话
HOLDING,//挂断通话
DIALING,//响铃
ALERTING,//提醒
INCOMING,//来电
WAITING,//等待接通
DISCONNECTED,//连接断开后
DISCONNECTING;//连接断开工程中
------解决方案--------------------
探讨

android源码里面是有以下状态的:
IDLE,//待机,没有连接
ACTIVE,//通话
HOLDING,//挂断通话
DIALING,//响铃
ALERTING,//提醒
INCOMING,//来电
WAITING,//等待接通
DISCONNECTED,//连接断开后
DISCONNEC……

------解决方案--------------------
获取无线射频日志信息,变量一般在通话接口中都可以找到,看下android自带docs
------解决方案--------------------
问一句你是怎么应用
  相关解决方案