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

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

问题描述:

我试图检测模式,当我们在通话。我正在使用广播和telephonyManager最流行的例子。
但只有3个州。如何检测“通话模式”android java

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),但是当IM做传出接受呼叫call - state = OFFHOOK,另一方的另一个“我”接受呼叫状态still = OFFHOOK。

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

如何使用AudioManager?

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

其工作,谢谢。 – Peter

+0

实际上它不工作。不知道我上次如何测试。 – Peter