Manage Contacts : Contact « Core Class « Android






Manage Contacts

  

package app.test;

import android.app.ListActivity;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.util.Log;
import android.widget.SimpleCursorAdapter;

public class Test extends ListActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //Uri allContacts = Uri.parse("content://contacts/people");
        //Uri allContacts = Uri.parse("content://contacts/people/1");        
        Uri allContacts = ContactsContract.Contacts.CONTENT_URI;
        //Uri allContacts = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, 1);
        String[] projection = new String[] 
            {ContactsContract.Contacts._ID, 
             ContactsContract.Contacts.DISPLAY_NAME,
             ContactsContract.Contacts.HAS_PHONE_NUMBER};
        
        Cursor c = managedQuery(
            allContacts, 
            projection, 
            ContactsContract.Contacts.DISPLAY_NAME + " LIKE ?", 
            new String[] {"%"} , 
            ContactsContract.Contacts.DISPLAY_NAME + " ASC");
        
        
        String[] columns = new String[] {ContactsContract.Contacts._ID, ContactsContract.Contacts.DISPLAY_NAME,};
        int[] views = new int[] {R.id.contactName, R.id.contactID};
        
        SimpleCursorAdapter adapter = 
            new SimpleCursorAdapter(this, R.layout.main, c, columns, views);
        this.setListAdapter(adapter);
        
        PrintContacts(c);  
    }    
    
    private void PrintContacts(Cursor c)
    {
        if (c.moveToFirst()) {
            do{
              String contactID = c.getString(c.getColumnIndex(ContactsContract.Contacts._ID));
              String contactDisplayName = c.getString(c.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));  
                Log.v("Content Providers", contactID + ", " + contactDisplayName);
                int hasPhone = c.getInt(c.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));
                if (hasPhone == 1) {
                    Cursor phoneCursor = getContentResolver().query(
                      ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, 
                      ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactID, null, null);                     
                    while (phoneCursor.moveToNext()) {
                      Log.v("Content Providers",
                            phoneCursor.getString(phoneCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)));                  
                    } 
                    phoneCursor.close();
                }
            } while (c.moveToNext());
        }
    }
}


//main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <ListView 
        android:id="@+id/android:list" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:layout_weight="1" 
        android:stackFromBottom="false" 
        android:transcriptMode="normal" 
        /> 
    <TextView   
        android:id="@+id/contactName"
        android:textStyle="bold"   
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        /> 
    <TextView   
        android:id="@+id/contactID" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
       />   

</LinearLayout>

   
    
  








Related examples in the same category

1.Contact Intent and Options Menu
2.Using Contact
3.Contact Intent
4.List Contact phones
5.Contact list demo
6.Contact Manager
7.Contacts Demo
8.Demonstrates launching the contacts app to pick a contact.