Android 我如何知道何时在安卓2.3+;电话开始和停止?

Android 我如何知道何时在安卓2.3+;电话开始和停止?,android,phone-call,Android,Phone Call,我需要我的应用程序来查明电话何时发生 它应该在另一部电话被呼叫和接听时工作。我只需要我的应用程序得到连接开始和停止的确切时间通知(而不是拨号、铃声等) 这可能吗?您可以使用广播类来实现这一点,如下所示: public class PhoneStateBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) {

我需要我的应用程序来查明电话何时发生

它应该在另一部电话被呼叫和接听时工作。我只需要我的应用程序得到连接开始和停止的确切时间通知(而不是拨号、铃声等)


这可能吗?

您可以使用广播类来实现这一点,如下所示:

public class PhoneStateBroadcastReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {

    TelephonyManager telephonyManager = (TelephonyManager) context
            .getSystemService(Context.TELEPHONY_SERVICE);
    telephonyManager.listen(new CustomPhoneStateListener(context),
            PhoneStateListener.LISTEN_CALL_STATE);
    }
}

class CustomPhoneStateListener extends PhoneStateListener {

    // private static final String TAG = "PhoneStateChanged";
    Context context; // Context to make Toast if required

    public CustomPhoneStateListener(Context context) {
        super();
        this.context = context;
    }

    @Override
    public void onCallStateChanged(int state, String incomingNumber) {

        super.onCallStateChanged(state, incomingNumber);
        switch (state) {

        case TelephonyManager.CALL_STATE_IDLE:
            //WHEN PHONE WILL BE IDLE       
        break;

        case TelephonyManager.CALL_STATE_OFFHOOK:
            // when Off hook i.e in call
        break;

        case TelephonyManager.CALL_STATE_RINGING:
            // when Ringing
        break;

        default:
        break;
        }
    }
}

希望这将对您有所帮助。

您可以使用广播类实现以下目标:

public class PhoneStateBroadcastReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {

    TelephonyManager telephonyManager = (TelephonyManager) context
            .getSystemService(Context.TELEPHONY_SERVICE);
    telephonyManager.listen(new CustomPhoneStateListener(context),
            PhoneStateListener.LISTEN_CALL_STATE);
    }
}

class CustomPhoneStateListener extends PhoneStateListener {

    // private static final String TAG = "PhoneStateChanged";
    Context context; // Context to make Toast if required

    public CustomPhoneStateListener(Context context) {
        super();
        this.context = context;
    }

    @Override
    public void onCallStateChanged(int state, String incomingNumber) {

        super.onCallStateChanged(state, incomingNumber);
        switch (state) {

        case TelephonyManager.CALL_STATE_IDLE:
            //WHEN PHONE WILL BE IDLE       
        break;

        case TelephonyManager.CALL_STATE_OFFHOOK:
            // when Off hook i.e in call
        break;

        case TelephonyManager.CALL_STATE_RINGING:
            // when Ringing
        break;

        default:
        break;
        }
    }
}

希望这能对您有所帮助。

非常感谢,很抱歉回复太晚,但这正是我想要的。非常感谢,很抱歉回复太晚,但这正是我想要的。