【问题标题】:Is it possible to know if an outgoing call is accepted in Android是否可以知道Android中是否接受拨出电话
【发布时间】:2014-12-10 23:51:29
【问题描述】:

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

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

【问题讨论】:

    标签: android


    【解决方案1】:

    正如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;
    

    【讨论】:

    • 实际上我将如何使用 lastState 变量。意味着我必须将它静态存储或存储在 sharedpreference 中..你能深入告诉我吗?
    • 这不是我的答案。此条件不满足获取振铃状态或接受状态..
    • 如果用户有呼叫等待,这将如何工作?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多