Как узнать, что вызываемый абонент ответил на вызов (В каком состоянии находится телефон, когда он поднимает трубку)

Я пытаюсь узнать, как предупредить, когда вызываемый абонент поднимает вызов. Я использовал PhoneStateListenerвместе с BroadcastReceiver.

Обычно он имеет три состояния CALL_STATE_IDLE, CALL_STATE_OFFHOOK, CALL_STATE_RINGING.

CALL_STATE_OFFHOOKсостояние звонило при подключении вызова, после ответа вызываемого абонента не было вызвано ни одного из трех вышеуказанных состояний. вызов.

Вот мой BroadcastReceiver.

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);

    }

    public class CustomPhoneStateListener  extends PhoneStateListener
    {

        Context context; //Context to make Toast if required 
        ActivityManager activityManager;

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

        @Override
        public void onCallStateChanged(int state, String incomingNumber) 
        {
            super.onCallStateChanged(state, incomingNumber);
            Log.v("PhoneStateBroadcastReceiver", "onCallStateChanged state"+state);


            switch (state) 
            {
            case TelephonyManager.CALL_STATE_IDLE:
               Toast.makeText(context, "=CALL_STATE_IDLE==", Toast.LENGTH_LONG).show();
             break;
            case TelephonyManager.CALL_STATE_OFFHOOK:
                Toast.makeText(context, "CALL_STATE_OFFHOOK", Toast.LENGTH_LONG).show();

                break;
            case TelephonyManager.CALL_STATE_RINGING:
                Toast.makeText(context, "CALL_STATE_RINGING", Toast.LENGTH_LONG).show();

                break;
            default:
                break;
            }
        }
      }
 }

Я видел некоторые приложения, которые записывают голос, когда звонок был принят. Я хочу знать состояние приема вызова.

Есть ли какое-либо другое состояние или прослушиватель, чтобы знать, когда вызываемый абонент отвечает на вызов?

20
задан Vadim Kotov 18 August 2017 в 12:16
поделиться