Saturday, September 8, 2012

Read Contacts from Android Device

This is a sample activity which shows How to read the contacts of phone and display them in your application. Last topic published on this forum is Detect USB connection.
Underlying Algorithm:
Basic description of algorithm in step by step form:
1.) Create a Project ReadContacts.
2.) Put the following code snippet in res/layout/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"
   >

<TextView  
   android:id ="@+id/con"
   android:layout_width="fill_parent" 
   android:layout_height="wrap_content" 
   />
</LinearLayout>
3.) Add the following permission in AndroidManifest.xml :
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.app.ReadContacts"
     android:versionCode="1"
     android:versionName="1.0">
    <uses-sdk android:minSdkVersion="7" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".ReadContacts"
                 android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>
4.) Import the following packages in activity:
import android.database.Cursor;
import android.net.Uri;
import android.provider.ContactsContract;
import android.widget.TextView;
5.) Add some contacts in device/emulator.
6.) Run the Application.
Steps to Create:
1.) Open Eclipse. Use the New Project Wizard and select Android Project Give the respective project name i.e. ReadContacts. Enter following information:
Project name: ReadContacts
Build Target: Android APIs2.1
Application name: ReadContacts
Package name: com.app. ReadContacts
Create Activity: ReadContacts
On Clicking Finish ReadContacts code structure is generated with the necessary Android Packages being imported along with ReadContacts.java. ReadContacts class will look like following:
package com.app.ReadContacts;
import android.app.Activity;
import android.os.Bundle;
import android.database.Cursor;
import android.net.Uri;
import android.provider.ContactsContract;
import android.widget.TextView;
public class ReadContacts extends Activity {
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.main);
                TextView contactView = (TextView) findViewById(R.id.con);
                Cursor cursor = getContacts();
                while (cursor.moveToNext()) {
                        String displayName =cursor.getString(cursor.getColumnIndex(ContactsContract.Data.DISPLAY_NAME));
                        contactView.append("Name: ");
                        contactView.append(displayName);
                        contactView.append("\n");
                }
        }
        private Cursor getContacts() {
                // Run query
                Uri uri = ContactsContract.Contacts.CONTENT_URI;
                String[] projection = new String[] {ContactsContract.Contacts._ID, ContactsContract.Contacts.DISPLAY_NAME };
                String selection = ContactsContract.Contacts.IN_VISIBLE_GROUP + " = ‘" + ("1") + "’";
                String[] selectionArgs = null;
                String sortOrder = ContactsContract.Contacts.DISPLAY_NAME+ " COLLATE LOCALIZED ASC";
                return managedQuery(uri, projection, selection, selectionArgs, sortOrder);
        }
}
Output –The final output:

No comments:

Post a Comment