Как узнать момент, когда вызываемый человек берет трубку

Возможный дубликат:
Обнаружение ответа на исходящий вызов

Как я могу узнать момент, когда человек, которого я называю "собирает" свой телефон?

Ответ 1

В отношении менеджера телефонии Android вы не можете программно определить, был ли ваш ответ получен или нет.

Но для входящих вызовов это возможно, используя PhoneStateListener. Когда вы "подбираете" телефон, состояние меняется на CALL_STATE_OFFHOOK.

TelephonyManager tm = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);
tm.listen(mPhoneListener, PhoneStateListener.LISTEN_CALL_STATE);

private PhoneStateListener mPhoneListener = new PhoneStateListener() {
    public void onCallStateChanged(int state, String incomingNumber) {
        try {
            switch (state) {
            case TelephonyManager.CALL_STATE_RINGING:
                // do something...
                break;

            case TelephonyManager.CALL_STATE_OFFHOOK:
                // you picked up the phone
                break;

            case TelephonyManager.CALL_STATE_IDLE:
                // do something...
                break;
            default:
                Log.d(TAG, "Unknown phone state=" + state);
            }
        } catch (RemoteException e) {}
    } 
};