2010-10-17 33 views
1

(Android) Il ya quelques jours, j'ai vu un moyen d'enregistrer un récepteur de diffusion pour comprendre quand l'écran devient noir ou l'inverse.Comprendre quand l'utilisateur parle au téléphone

Maintenant, je voudrais trouver un moyen de comprendre quand les utilisateurs parlent au téléphone mais je ne trouve pas de diffusion pour ce cas, alors comment puis-je comprendre si l'utilisateur est au téléphone? (Peut-être sans toujours lancer un service qui déchargerait la batterie).

TNK

Valerio

Répondre

0

Je ne suis pas sûr de « parler » au téléphone, car il n'y a pas d'API pour détecter, mais vous pouvez écouter l'état du téléphone, comme:

TelephonyManager telephonyManager = (TelephonyManager) 
             getSystemService(Context.TELEPHONY_SERVICE); 

PhoneStateListener listener = new PhoneStateListener() { 
    @Override 
    public void onCallStateChanged(int state, String incomingNumber) { 
     String stateString = "N/A"; 
     switch (state) { 
      case TelephonyManager.CALL_STATE_IDLE: 
       stateString = "Idle"; 
       break; 
      case TelephonyManager.CALL_STATE_OFFHOOK: 
       stateString = "Off Hook"; 
       break; 
      case TelephonyManager.CALL_STATE_RINGING: 
       stateString = "Ringing"; 
       break; 
     } 
    } 
}; 
telephonyManager.listen(listener, PhoneStateListener.LISTEN_CALL_STATE); 

ne pas oublier la permission suivante dans le manifeste:

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>