2010-12-10 14 views
5

Fuente:cadena no vacía 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) 

Hola,
estoy utilizando este código, con android.permission.READ_PHONE_STATE permiso, para obtener tostadas mensaje incluyendo el número de llamada iniciado. Mi problema es que incomingNumber está vacío, no importa si la llamada es saliente o entrante, aparecen tostadas, pero vacías.
He visto algunas soluciones para esto, pero la solución fue obtener el número de una manera completamente diferente y quiero saber si mi código se puede usar para mis necesidades.
Gracias por los consejos,
Adam

+0

Esta pregunta parece ser similar, con suerte podría ayudarle: http://stackoverflow.com/questions/4534306/retrieve-the-call-number-in-my-android-app –

+0

http: // stackoverflow. com/questions/4534306/retrieve-the-call-number-in-my-android-app/4534415 # 4534415 – medampudi

Respuesta

2

por favor incluya el permiso en su aplicación.

<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 return null si es su primera llamada. Entonces debería usar CALL_STATE_RINGING.

Espero que te ayude.

Cuestiones relacionadas