是否有可能知道Android是否接受传出呼叫

是否有可能知道Android是否接受传出呼叫,android,Android,在我的应用程序中,我必须检测呼出的电话是否被接听、断开或响起。我浏览了这些帖子: 但这些帖子都没有给出正确的答案。我使用了Android内部类com.Android.internal.telephony.CallManager,但我只得到手机状态是否空闲。如前所述,正式情况下您不能这样做,但我正在使用一种解决方法: 您可以保存上一个状态,并使用它来识别传出呼叫何时从挂机状态变为空闲状态,这意味着呼叫已挂断或已接受。因此,要知道它是哪一个,您可以检查调用是否仍然有效,如果是,您可以判

在我的应用程序中,我必须检测呼出的电话是否被接听、断开或响起。我浏览了这些帖子:


但这些帖子都没有给出正确的答案。我使用了Android内部类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;

实际上,我将如何使用lastState变量。这意味着我必须静态存储它或将其存储在SharedReference中。你能告诉我详细信息吗?这不是我的答案。这个条件不满足获取振铃状态或接受状态。如果用户有呼叫等待,这将如何工作?