我的问题是当我收到多个来电时(比如 2 个中的 3 个保留和 1 个 Activity ),当调用者断开这 2 个调用中的任何一个时,我没有得到 CALL_STATE_IDLE
。但是当最后一次通话断开时得到 CALL_STATE_IDLE
。 CALL_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;
}
}
最佳答案
这不是解决您问题的答案。但是,它确实增加了解决方案的值(value)
What is CALL_STATE_IDLE ?
设备调用状态:无 Activity 。
因此,我们不应该期望它在有 Activity 线路时发送 CALL_STATE_IDLE 状态。这就是为什么仅当所有调用都断开时才广播事件 CALL_STATE_IDLE
关于java - Android中有多路通话时如何识别通话断开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23541696/