如何检测“在通话模式下”android java

时间:2017-08-16 08:15:17

标签: java android telephonymanager phone-call

我正在尝试在通话时检测模式。我正在使用广播和电话管理器最受欢迎的例子 但只有3个州。

String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
if(state.equals(TelephonyManager.EXTRA_STATE_RINGING)){

}
if (state.equals(TelephonyManager.EXTRA_STATE_OFFHOOK)){

}
if (state.equals(TelephonyManager.EXTRA_STATE_IDLE)){

}
经过一些测试,我发现:

1)来电时 - 比我看到状态= RINGING     - 接受来自此州的电话= OFFHOOK

2)但是当我做传出呼叫 - 状态= OFFHOOK,而当另一方的另一个“我”接受呼叫 - 状态仍然= OFFHOOK。

如何正确检测IN_CALL_MODE(意思是当前时间说话)。 ? 可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

如何使用AudioManager?

AudioManager manager = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
if(manager.getMode()==AudioManager.MODE_IN_CALL){
    return true;    // Active call
}
else {
    return false;
}