Rufen Sie die Telefonnummer eines eingehenden Anrufs in Android ab

Ich möchte zum abrufen der ankommenden Anrufs die Telefonnummer und etwas zu tun mit es wie das tun
in http://blog.whitepages.com/2009/02/27/caller-id-by-whitepages-a-new-android-app-that-puts-telemarketers-on-alert/

Könnten Sie mir bitte helfen, denn ich kann nicht finden alle Informationen über dieses.
Wo fange ich an und wie bekomme ich die Telefonnummer?


Ok, so ist derzeit mein code sieht wie folgt aus. Wenn ich den Anruf der CustomBroadcastReceiver fängt ihn auf und die log-Nachricht ausgegeben. Kann ich abrufen der Telefonnummer aus dem bundle. Aber! Ich kann nicht hte CustomPhoneStateListener zu arbeiten. Wie Sie sehen können ich habe mich registriert, meine customPhoneState Zuhörer an den Empfänger, aber die log-Meldung noch nie bekommen ist, ausgedruckt aus dem CustomPhoneStateListener Klasse. Was bin ich, mein fehlen hier?
Ist mein denken richtig?


<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);

}

InformationsquelleAutor der Frage jakob | 2009-12-05

Schreibe einen Kommentar