2010-12-10 12 views
5

Fonte:Impossibile ottenere stringa non vuota da 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) 

Ciao,
Sto usando questo codice, con android.permission.READ_PHONE_STATE il permesso, per ottenere il messaggio brindisi compreso il numero di chiamata iniziata. Il mio problema è che in arrivoNumero è vuoto, non importa se la chiamata è in uscita o in entrata, pane tostato appare, ma vuoto.
Ho visto alcune soluzioni per questo, ma la soluzione era di ottenere il numero in modo completamente diverso e voglio sapere se il mio codice può essere usato per le mie esigenze.
Grazie per i consigli,
Adam

+0

Questa domanda sembra essere simile, si spera che potrebbe aiutarti: http://stackoverflow.com/questions/4534306/retrieve-the-call-number-in-my-android-app –

+0

http: // stackoverflow. com/domande/4534306/recuperare-the-call-numero-in-my-android-app/4.534.415 4.534.415 # – medampudi

risposta

2

si prega di includere l'autorizzazione nella vostra applicazione.

<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 restituisce null se la prima chiamata. Quindi dovresti usare CALL_STATE_RINGING.

Speriamo che ti possa aiutare.