Skip to content Skip to sidebar Skip to footer

Get Contacts Mobile Number Only

There have been several questions on SO regarding getting Contacts numbers using the Contacts API but I'd like to know if there is a way to identify that the number retrieved is a

Solution 1:

I stumbled upon a blog article which gives a pretty good explanation of using the ContactsContract api here.

So, in my example above, I changed part of my code above to this:

while (phones.moveToNext()) 
{                   
     int phoneType = phones.getInt(phones.getColumnIndex(Phone.TYPE));
     if (phoneType == Phone.TYPE_MOBILE)
     {
          phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DATA));
          phoneNumber = phoneNumber.replaceAll("\\s", "");
          break;
     }
}

This loops around all the phones for an individual contact and if the type is Phone.TYPE_MOBILE then it takes this one.

Hope this helps someone with the same issue I had.

Solution 2:

The original query cursor = managedQuery(intent.getData(), projection, selection, null, null); should be able to handle filter for you. I am trying to do the same thing. I will post my findings when complete. If anyone knows how to do this using the selection clause in the third parameter. I would love to know the answer.

Post a Comment for "Get Contacts Mobile Number Only"