Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当Android中有多个呼叫时,如何识别断开的呼叫_Java_Android_Telephonymanager - Fatal编程技术网

Java 当Android中有多个呼叫时,如何识别断开的呼叫

Java 当Android中有多个呼叫时,如何识别断开的呼叫,java,android,telephonymanager,Java,Android,Telephonymanager,我的问题是,当我收到多个呼叫时(例如2个呼叫中的3个保持,1个激活),当呼叫者断开2个呼叫中的任何一个呼叫时,我没有得到CALL\u STATE\u IDLE。但当最后一次呼叫断开时,获取CALL\u STATE\u IDLECALL\u STATE\u RINGING和CALL\u STATE\u OFFHOOK工作正常 public void onCallStateChanged(int state, String incomingNumber) { super.onCallStateCh

我的问题是,当我收到多个呼叫时(例如2个呼叫中的3个保持,1个激活),当呼叫者断开2个呼叫中的任何一个呼叫时,我没有得到
CALL\u STATE\u IDLE
。但当最后一次呼叫断开时,获取
CALL\u STATE\u IDLE
CALL\u STATE\u RINGING
CALL\u STATE\u 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;
}
}

这不是解决你问题的答案。但是,它肯定会为解决方案增加价值

什么叫空闲状态

设备调用状态:无活动


所以,我们不应该期望它在有活动线路时发送CALL\u STATE\u IDLE STATE。这就是为什么只有在所有呼叫都断开时才会广播事件呼叫_STATE _IDLE

它应该是3个保持中的2个,1个活动:)它将是2个。但是这两个在第三次通话中断时是如何出现的。这是我的问题