2012-07-17 9 views
20

Ich versuche zu wissen, wie ich warnen kann, wenn der Angerufene den Anruf annimmt. Ich habe PhoneStateListener zusammen mit BroadcastReceiver verwendet.Wie Sie wissen, dass der Angerufene den Anruf entgegengenommen hat (Wie lautet der Telefonstatus, wenn er den Anruf annimmt)

Im Allgemeinen hat es drei Zustände CALL_STATE_IDLE , CALL_STATE_OFFHOOK, CALL_STATE_RINGING.

CALL_STATE_OFFHOOK Zustand wurde aufgerufen, wenn Anruf verbindet, Kein Zustand der oben genannten drei Staaten wurde nach Angerufenen Anruf genannt.

Hier ist mein 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; 
      } 
     } 
     } 
} 

Ich habe einige Anwendungen gesehen, die eine Stimme aufzeichnen, wenn Anruf angenommen wurde. Ich möchte den Status des Annehmens von Anrufen wissen.

Gibt es einen anderen Status oder Zuhörer, wenn der Angerufene den Anruf entgegennimmt?

Antwort