在我的应用程序中,我必须检测拨出电话是否被接受、断开或响铃。我浏览了这些帖子:
- 有没有办法知道拨出电话是否被接受?
- 无法检测到在 Android 中何时接听了拨出电话
- 如何获取拨出电话的状态
- 如何在android中识别拨出电话的振铃状态
- Android 2.2+ 中的去电应答状态
但是这些帖子都没有给出正确的答案。我使用了 Android internal class com.android.internal.telephony.CallManager
,但我只得到手机状态是否空闲。
在我的应用程序中,我必须检测拨出电话是否被接受、断开或响铃。我浏览了这些帖子:
但是这些帖子都没有给出正确的答案。我使用了 Android internal class com.android.internal.telephony.CallManager
,但我只得到手机状态是否空闲。
正式地你不能这样做,正如这里解释的那样,但我正在使用一种解决方法:你可以保存你的最后一个状态并使用它来识别拨出电话何时从摘机变为空闲,这意味着呼叫是挂断或接受。因此,要知道它是什么,您可以检查呼叫是否仍然存在,如果是,您可以判断呼叫已被应答并执行您的代码。
例如:
// 0 --> 1 || 0 --> 2
if ( laststate == TelephonyManager.CALL_STATE_IDLE
&& ( state == TelephonyManager.CALL_STATE_RINGING
|| state == TelephonyManager.CALL_STATE_OFFHOOK))
{
}
else if (state == TelephonyManager.CALL_STATE_IDLE)
{
}
if ( laststate == TelephonyManager.CALL_STATE_OFFHOOK
&& state == TelephonyManager.CALL_STATE_IDLE)
{
}
laststate = state;