2010-12-10 10 views
5

Source:Impossible d'obtenir la chaîne non vide de PhoneStateListener :: onCallStateChanged

listener = new PhoneStateListener() 
    { 
     @Override 
     public void onCallStateChanged(int state, String incomingNumber) { 
      super.onCallStateChanged(state, incomingNumber); 
      Toast toast = Toast.makeText(getApplicationContext(), incomingNumber, Toast.LENGTH_LONG); 
      toast.show(); 
     } 

    }; 

    ((TelephonyManager)getSystemService(TELEPHONY_SERVICE)).listen(listener , PhoneStateListener.LISTEN_CALL_STATE) 

Salut,
J'utilise ce code, avec la permission android.permission.READ_PHONE_STATE, pour obtenir un message de pain grillé y compris le numéro d'appel a commencé. Mon problème est que incomingNumber est vide, cela n'a pas d'importance si l'appel est sortant ou entrant, toast apparaît, mais vide.
J'ai vu quelques solutions pour cela, mais la solution était d'obtenir le numéro de façon complètement différente et je veux savoir si mon code peut être utilisé pour mes besoins.
Merci pour les conseils,
Adam

+0

Cette question semble être similaire, j'espère que cela peut vous aider: http://stackoverflow.com/questions/4534306/retrieve-the-call-number-in-my-android-app –

+0

http: // stackoverflow. com/questions/4534306/récupérer le numéro d'appel-dans-mon-android-app/4534415 # 4534415 – medampudi

Répondre

2

veuillez inclure la permission dans votre application.

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


if(state == TelephonyManager.CALL_STATE_RINGING){ 
Toast toast = Toast.makeText(getApplicationContext(), incomingNumber, Toast.LENGTH_LONG); 
toast.show(); 
} 

CALL_STATE_OFFHOOK renvoie null si son premier appel. Donc, vous devriez utiliser CALL_STATE_RINGING.

J'espère que ça va vous aider.