在Android中有多个呼叫时,如何识别呼叫是否已断开连接

时间:2014-05-08 12:23:45

标签: java android telephonymanager

我的问题是,当我有多个已接来电时(比如说2个保持3个,1个有效),当呼叫者断开任何2个呼叫时,我不会得到CALL_STATE_IDLE。但是在最后一次通话断开时获取CALL_STATE_IDLECALL_STATE_RINGING& CALL_STATE_OFFHOOK工作正常。

public void onCallStateChanged(int state, String incomingNumber) {
 super.onCallStateChanged(state, incomingNumber);
 Log.e("MyService", "Switch " + state);
switch (state) {

case TelephonyManager.CALL_STATE_OFFHOOK:
    Log.e("MyService", "CALL_STATE_OFFHOOK");
    break;

case TelephonyManager.CALL_STATE_RINGING:
    Log.e("MyService", "CALL_STATE_RINGING");
    break;

case TelephonyManager.CALL_STATE_IDLE:
    Log.e("MyService", "CALL_STATE_IDLE");
    break;

default:
    Log.e("MyService", "default");
    break;
}
}

1 个答案:

答案 0 :(得分:0)

这不是解决问题的答案。但是,它确实为解决方案增加了价值

  

什么是CALL_STATE_IDLE?

设备呼叫状态:无活动。

因此,当存在活动行时,我们不应期望它发送CALL_STATE_IDLE状态。这就是为什么只有在所有呼叫都断开时才会广播事件CALL_STATE_IDLE

相关问题