Question: I'm attempting to retrieve both email and phone via a single cursor described below. I'm using the `Email.CONTENT_URI`, hence I don't retrieve the phone number, so my `phoneColumn` is returning email. I tried using `Phone.CONTENT_URI` but it only returns a smaller subset of contacts (possibly because it only fetches ones that have phone numbers). Is there a way to get both email and phone with a specific Uri or how can I do it with two cursors?

```
Cursor cursor = context.getContentResolver().query(ContactsContract.CommonDataKinds.Email.CONTENT_URI,
                projection, null, null, order);
        int idColumn = cursor.getColumnIndex(ContactsContract.Data._ID);
        int nameColumn = cursor.getColumnIndex(ContactsContract.Data.DISPLAY_NAME);
        int emailColumn = cursor.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA);
        int phoneColumn = cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DATA);

```

where projection is:

```
String[] projection = new String[] {
                ContactsContract.Contacts._ID,
                ContactsContract.Data.DISPLAY_NAME,
                ContactsContract.CommonDataKinds.Email.DATA,
                ContactsContract.CommonDataKinds.Phone.DATA, }

```

Answer: 
Please have a look [here](http://developer.android.com/reference/android/provider/ContactsContract.Data.html). You should find all the necessary examples for such kind of querying. 

For an example, you can fetch all information of a contactId in this way:

```
Cursor data = context.getContentResolver().query( 
Data.CONTENT_URI, new String[] { Data._ID,Data.MIMETYPE,
Email.ADDRESS, Photo.PHOTO},Data.CONTACT_ID 
+ "=?" + " AND " + "(" +  Data.MIMETYPE + "='" 
+ Photo.CONTENT_ITEM_TYPE + "' OR " + Data.MIMETYPE 
+ "='" + Email.CONTENT_ITEM_TYPE +"')",
new String[] {String.valueOf(contactId)}, null);

```

You can fetch info for all contacts in this way and then probably sort it according to your criteria. You can build queries like this based on your need.
I have created this library to solve all your queries. It will only save contacts with at least one email or phone number. Also it will remove duplicates from emails and phone numbers from same contacts (created by 3rd party apps like whatsapp).

Please have a look at it.

Link : <https://github.com/raghavsatyadev/ContactFetcher/>