2010-12-07 34 views
2

Je veux détecter l'appel sortant dans l'application android. En fait, je peux détecter les appels sortants, mais cela fonctionne également pour les appels entrants et je ne le veux pas. J'en ai besoin pour travailler seulement pour sortant. voici mon code ....appel sortant détecter dans PhoneStateListener

boolean ringing = false; 
boolean offhook = false; 

public void onCallStateChanged(int state, String incomingNumber) { 

    switch (state) { 


    case TelephonyManager.CALL_STATE_IDLE: 

if((!ringing)&& offhook){ 
       ///incomming call 
     } 
      break; 
case TelephonyManager.CALL_STATE_RINGING: 

    callerPhoneNumber = incomingNumber; 
Log.d(TAG, "RINGING"); 
ringing = true; 
offhook = false;  
break; 

    case TelephonyManager.CALL_STATE_OFFHOOK: 

Log.d(TAG, "OFFHOOK"); 
offhook = true; 
ringing = false; 
break; 
} 

Répondre

6

Vous pouvez écrire un récepteur de diffusion pour android.intent.action.NEW_OUTGOING_CALL.

See here Exemple de code est disponible

+0

Merci beaucoup .... mais comment puis-je démarrer et arrêter le récepteur de radiodiffusion. C'est wahy que j'utilise le service et l'implémentation phonestatelistener en service et ici je n'ai pas l'option pour détecter l'appel sortant. – Sujit

+0

J'avais écrit le récepteur de diffusion mais il détecte seulement la connexion d'appel sortant et le rejet d'appel sortant. Je veux également vérifier si l'appel est de se connecter ou de ne pas écouter l'utilisateur occupé à parler à quelqu'un d'autre. –