Android应用怎么知道正在拨号和电话已接通? 不要告诉我是TelephonyManager.CALL_STATE_OFFHOOK,网上很多人说是TelephonyManager.CALL_STATE_OFFHOOK是接通,其实不是的,试一下就知道
------解决方案--------------------
应该有相应的返回值吧
------解决方案--------------------
------解决方案--------------------
如果你是指自己本身打电话给对方的话。。。我觉得无法知道正在拨号。。。因为拨号不会产生广播。。。但是一旦拨号了,就会有记录显示在系统通话记录的数据库中。。。你可以弄个观察者观察通话记录。。。发现记录变化了,作出相应处理。
------解决方案--------------------
电话铃响了,Ringing,然后你接听的话,就是Off-hook
------解决方案--------------------
获取状态Call.State state = call.getState(); 然后用case 捕捉相应的值进行具体处理,callcard总有类似的相关代码
其中 state就是 电话的状态:大致分为以下几种情况 ACTIVE(接通);DISCONNECTING;HOLDING(保持);DISCONNECTED;DIALING(拨号);INCOMING(来电);WAITING ;IDLE;
------解决方案--------------------
这中状态是没有api调用获取的。。
我研究过很长时间 qq和其他通讯录的实现基本上是根据日志来获取
如下
- 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
后台开启一个服务 在开始一个线程。一直读取实现监听。。
------解决方案--------------------
http://blog.csdn.net/tyfjy/article/details/6452126
------解决方案--------------------
------解决方案--------------------
请教楼主,问题解决了没有,怎么获取Active啊?