Search code examples
androidandroid-contactscontactscontract

What kind of information can i find on android's Contacts Provider


I am developing an android application and I need to know all the information about phone contacts.

I developed a function to get the name and number of all the contacts, but I need all the information about particular contact such as email, date, favorite or not, image, social links if available.

I got id, name and number from following:

String id = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
String name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
String number = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));

I used ContactsContract.Contacts to get _ID and DISPLAY_NAME, but ContactsContract.CommenDataKinds.Phone to get the NUMBER. Is it correct?

Please explain the difference between the two methods.

Is the _ID a unique ID for all the contacts?


Solution

  • After a long discussion with @pskink I finally found the solution to list all related information for each contact in the directory. First of all, create a cursor:

    Cursor cursor = cr.query(ContactsContract.Data.CONTENT_URI, null, null, null, null);
    

    And after that, you can dumb the cursor to show all the informations and see each contact and keywords it needs to use, like (custom_ringtone, display_name, photo_uri, is_primary, ..) by using this line of code:

    DatabaseUtils.dumpCursor(cursor);
    

    Special thanks to @pskink