Android Get All Contact and Email with the help of Content Resolver

This tutorial help to learn basic knowledge about Content Provider and with the help of Content Resolver we will get all the contact from device.

 What is Content Provider?
A content provider component Transefer data from one application to others with the help of ContentResolver class.

What is Content Resolver?
The Content Resolver is provides access to own application and other applications content providers.Android provide number of content providers that store common data such as contact data, calendar data,and media files etc.

Screen of show all contact fron device 

                                                                                                                  

1.Read All Contact

package com.example.contentproviderapp;

import java.util.ArrayList;
import android.app.ListActivity;
import android.content.ContentResolver;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class ReadContactPhoneActivity extends ListActivity
{
   ListView lv;
   ArrayList<String> list;
   ArrayAdapter<String> adp;
   
   ContentResolver cr;
   ArrayList<String> idlist;
   @Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
   lv = getListView();
   list = new ArrayList<String>();
   adp = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,list);
   lv.setAdapter(adp);
   idlist = new ArrayList<String>();
   cr = getContentResolver(); 
 Uri curi = ContactsContract.Contacts.CONTENT_URI;
  String [] cols = 
  {
   ContactsContract.Contacts._ID,
   ContactsContract.Contacts.DISPLAY_NAME
  };
   Cursor c1 = cr.query(curi, cols, null,null, null);
   while(c1.moveToNext())
  {
       idlist.add(c1.getString(0));
       list.add(c1.getString(1));
       adp.notifyDataSetChanged();
  }
     lv.setOnItemClickListener(new OnItemClickListener()
  {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) 
{
  String id = idlist.get(arg2);
    Uri puri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI;
    String cols[]=
  {
  ContactsContract.CommonDataKinds.Phone._ID,
  ContactsContract.CommonDataKinds.Phone.NUMBER
  };
    String select = ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=?";
    Cursor pc = cr.query(puri, cols, select, new String[]{id}, null);
  
  if(pc.getCount()==0)
  {
  Toast.makeText(ReadContactPhoneActivity.this, "No Number", 2).show();
  }
  else
  {
   String number="";
   while(pc.moveToNext())
   {
  number += " " + pc.getString(1);
   }
   Toast.makeText(ReadContactPhoneActivity.this, number, 2).show();
  }
}
});
}
}


2.Read All Email 

Show all Email list from Yout Account


package com.example.contentproviderapp;

import java.util.ArrayList;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.app.Activity;
import android.app.ListActivity;
import android.content.ContentResolver;
import android.database.Cursor;
import android.util.Log;
import android.view.Menu;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class ReadEMailActivity extends ListActivity 
{
ListView lv;
ArrayList<String> list;
ArrayAdapter<String> adp;
ContentResolver cr;
   @Override
    protected void onCreate(Bundle savedInstanceState) 
   {
       super.onCreate(savedInstanceState);
       lv = getListView();
       list = new ArrayList<String>();
       adp = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,list);
       lv.setAdapter(adp);
       cr = getContentResolver();
       Uri pURI = ContactsContract.CommonDataKinds.Email.CONTENT_URI;
      String cols[]=
     {
       ContactsContract.CommonDataKinds.Email._ID,
       ContactsContract.CommonDataKinds.Email.ADDRESS
     };
     Cursor c = cr.query(pURI,cols , null, null, null);
     int rcount = c.getCount();
     Log.e("Rows",rcount+"");
     int ccount = c.getColumnCount();
     Log.e("Cols",ccount+"");
        for(int i=0;i<ccount;i++)
     {
        String colname = c.getColumnName(i);
        Log.e("Col " + i, colname);
      }
while(c.moveToNext())
    {
      String id = c.getString(0);
       String mail = c.getString(1);
       String data = id + " : "+mail;
       list.add(data);
       adp.notifyDataSetChanged();
   }
  }
}