me gustaría recuperar numero de teléfono de la llamada entrante y hacer algo con él como el hacer en http://blog.whitepages.com/2009/02/27/caller-id-by-whitepages-a-new-android-app-that-puts-telemarketers-on-alert/Recuperar el número de teléfono de la llamada entrante en Android
¿Me podría ayudar porque no puedo encontrar ninguna información sobre esto. ¿Por dónde empiezo y cómo puedo obtener el número de teléfono?
Ok, así que actualmente mi código se ve a continuación. Cuando realizo la llamada, CustomBroadcastReceiver lo detecta y se imprime el mensaje de registro. Puedo recuperar el número de teléfono del paquete. ¡Pero! No puedo hacer funcionar el CustomPhoneStateListener. Como puede ver, he registrado mi escucha personalizada de PhoneState en el receptor, pero el mensaje de registro nunca se imprime desde la clase CustomPhoneStateListener. ¿Qué es lo que me falta aquí? ¿Es correcto mi razonamiento?
<receiver android:name=".CustomBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>
</receiver>
</application>
<uses-sdk android:minSdkVersion="5" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
public class CustomPhoneStateListener extends PhoneStateListener {
private static final String TAG = "CustomPhoneStateListener";
public void onCallStateChange(int state, String incomingNumber){
Log.v(TAG, "WE ARE INSIDE!!!!!!!!!!!");
Log.v(TAG, incomingNumber);
switch(state){
case TelephonyManager.CALL_STATE_RINGING:
Log.d(TAG, "RINGING");
break;
}
}
public class CustomBroadcastReceiver extends BroadcastReceiver {
private static final String TAG = "CustomBroadcastReceiver";
@Override
public void onReceive(Context context, Intent intent) {
Log.v(TAG, "WE ARE INSIDE!!!!!!!!!!!");
TelephonyManager telephony = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
CustomPhoneStateListener customPhoneListener = new CustomPhoneStateListener();
telephony.listen(customPhoneListener, PhoneStateListener.LISTEN_CALL_STATE);
Bundle bundle = intent.getExtras();
String phoneNr= bundle.getString("incoming_number");
Log.v(TAG, "phoneNr: "+phoneNr);
}
¿Podrían presentar un ejemplo de implementación? – jakob
Mi respuesta para esta pregunta puede ayudar [enlace] (http://stackoverflow.com/questions/10136490/androidget-phone-number-of-present-incoming-and-outgoing-call/11182720#11182720) – Gary