当前位置: 代码迷 >> Android >> 100分 Android应用如何知道正在拨号和电话已接通
  详细解决方案

100分 Android应用如何知道正在拨号和电话已接通

热度:91   发布时间:2016-05-01 21:13:26.0
100分 Android应用怎么知道正在拨号和电话已接通?
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
------解决方案--------------------
探讨

Android2.3应用程序接听不了电话,没权限,有方法搞定没有呀?

------解决方案--------------------
请教楼主,问题解决了没有,怎么获取Active啊?
  相关解决方案