java - Android中有多路通话时如何识别通话断开

标签 java android telephonymanager

我的问题是当我收到多个来电时(比如 2 个中的 3 个保留和 1 个 Activity ),当调用者断开这 2 个调用中的任何一个时,我没有得到 CALL_STATE_IDLE。但是当最后一次通话断开时得到 CALL_STATE_IDLECALL_STATE_RINGINGCALL_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/

相关文章:

android - 在双卡手机中获取两个 simcard 运营商名称

android - fragment 之间的动画过渡 - 滑动效果 - 半透明的statusBar和ActionBar

android - Nougat 上未调用 TelephonyManager 的 PhoneStateListener

java - 扩展DefaultTableCellRenderer,getTableCellRendererComponent中没有创建新对象?

java - 从预先存在的应用程序创建 Web 应用程序

java - Android 打开时崩溃

Android更新应用跨应用重启使用DownloadManager(避免多次下载)

android - 如何检测未接听的来电挂断。?

java - 如何在 servlet 操作中同步请求

java - 光标的坐标位置和颜色在一定条件下变化 - JavaFX