最好不要说用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自带docs
------解决方案--------------------
问一句你是怎么应用