2

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

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

4

1 回答 1

0

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

例如:

// 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;
于 2013-09-21T10:17:53.327 回答