title: Retrieve incoming call's phone number in Android
body: <p>I would like to retrieve the incoming call's phonenumber and do something with it like the do
  in <a href="http://blog.whitepages.com/2009/02/27/caller-id-by-whitepages-a-new-android-app-that-puts-telemarketers-on-alert/" rel="noreferrer">http://blog.whitepages.com/2009/02/27/caller-id-by-whitepages-a-new-android-app-that-puts-telemarketers-on-alert/</a></p>
  
  <p>Could you please help me because I can't find any information about this.
  Where do i start and how do i get hold of the phonenumber?</p>
  
  <hr>
  
  <p>Ok so currently my code looks like below. When I place the call the CustomBroadcastReceiver catches it and the log message is printed out. I can retrieve the telephone number from the bundle. But! I can't get hte CustomPhoneStateListener to work. As you can see I have registered my customPhoneState listener to the receiver but the log message never get's printed out from the CustomPhoneStateListener class. What am I my missing here?
  Is my thinking correct? </p>
  
  <hr>
  
  <pre><code>&lt;receiver android:name=".CustomBroadcastReceiver"&gt;
          &lt;intent-filter&gt;
              &lt;action android:name="android.intent.action.PHONE_STATE" /&gt; 
          &lt;/intent-filter&gt;
  &lt;/receiver&gt;
  
  &lt;/application&gt;
  &lt;uses-sdk android:minSdkVersion="5" /&gt;
  &lt;uses-permission android:name="android.permission.INTERNET" /&gt;
  &lt;uses-permission android:name="android.permission.WRITE_CONTACTS" /&gt;
  &lt;uses-permission android:name="android.permission.READ_PHONE_STATE" /&gt;
  </code></pre>
  
  <hr>
  
  <pre><code>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;
      }   
  }
  </code></pre>
  
  <hr>
  
  <pre><code>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);
  
  }
  </code></pre>