如何在android中查找呼叫是否已应答

如何在android中查找呼叫是否已应答,android,Android,我想启动一个计时器,只有当呼出的电话已被接听。就像Nexus 5中的默认手机应用程序一样 有没有办法确定电话是否已接听 我在拨完电话号码后立即尝试了电话侦听器,它可以呼叫\u STATE\u OFFHOOK。所以这不是正确的方法 有人能帮我弄清楚吗 谢谢 这本书可以帮助您: public class CallLogReceiver extends BroadcastReceiver { static boolean missedCall, incomingCall; @Override pu

我想启动一个计时器,只有当呼出的电话已被接听。就像Nexus 5中的默认手机应用程序一样

有没有办法确定电话是否已接听

我在拨完电话号码后立即尝试了电话侦听器,它可以呼叫\u STATE\u OFFHOOK。所以这不是正确的方法

有人能帮我弄清楚吗


谢谢

这本书可以帮助您:

public class CallLogReceiver extends BroadcastReceiver {

static boolean missedCall, incomingCall;

@Override
public void onReceive(Context context, Intent intent) {
    // TODO Auto-generated method stub


    if (intent.getAction().equals("android.intent.action.PHONE_STATE")) {
        String state = intent.getExtras().getString(
                TelephonyManager.EXTRA_STATE);

        if ((state != null)
                && (state.equals(TelephonyManager.EXTRA_STATE_RINGING))) {
            CallLogReceiver.phoneNo = intent.getExtras().getString(
                    "incoming_number");
            CallLogReceiver.missedCall = true;
        }

        if ((state != null)
                && (state.equals(TelephonyManager.EXTRA_STATE_OFFHOOK))) {
            CallLogReceiver.incomingCall = true;

        }
        if (state != null
                && !(state.equals(TelephonyManager.EXTRA_STATE_OFFHOOK))
                && !(state.equals(TelephonyManager.EXTRA_STATE_RINGING))) {

            if (CallLogReceiver.missedCall && CallLogReceiver.incomingCall) {
                //incoming call logic
            }

            else if (CallLogReceiver.missedCall
                    && !CallLogReceiver.incomingCall) {
                // missed call logic
            }
            CallLogReceiver.missedCall = CallLogReceiver.incomingCall = false;
        }
      }
    }
}

可能重复的我仍然有相同的问题-在我按下拨号键后,它立即进入状态\u OFFHOOK。不,您的代码中有一些问题,因为当您拨打电话号码时,状态处于额外状态\u RINGING,当您拿起时,状态处于额外状态\u OFFHOOK…尝试调试