是否可以知道Android中是否接受了拨出电话

时间:2013-09-21 09:53:00

标签: android

在我的应用中,我必须检测是否接听或断开或响铃。我仔细阅读了这些帖子:

但这些帖子都没有给出正确答案。我使用了Android内部类com.android.internal.telephony.CallManager,但我只是得知手机状态是否空闲。

1 个答案:

答案 0 :(得分:0)

正如你所解释的here那样,你不能这样做,但我正在使用一种解决方法: 您可以保存上次状态并使用它来识别拨出呼叫何时从摘机状态转为空闲状态,这意味着呼叫已挂断或已接受。因此,要知道它是什么,您可以检查呼叫是否仍然存在,如果是,您可以告诉呼叫已被应答并执行您的代码。

例如:

// 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;