2012-07-17 15 views
20

Estoy tratando de saber cómo alertar cuando el destinatario levanta la llamada. He usado PhoneStateListener junto con BroadcastReceiver.Cómo saber que el destinatario es atendido la llamada (cuál es el estado del teléfono cuando levanta la llamada)

Generalmente tiene tres estados CALL_STATE_IDLE , CALL_STATE_OFFHOOK, CALL_STATE_RINGING.

CALL_STATE_OFFHOOK estado estaba llamando cuando se está conectando la llamada, no se llamó a ningún estado de los tres estados anteriores después de que callee respondió llamada.

Aquí está mi 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; 
      } 
     } 
     } 
} 

He visto algunas aplicaciones que están grabando una voz cuando se aceptó la llamada. Quiero saber el estado de aceptación de llamada.

¿Hay algún otro estado u oyente que sepa cuándo se atiende a la llamada?

Respuesta

Cuestiones relacionadas