contacts in android
<p>I want to get all phone contacts from device in android.i have used the following code.but the problem is it  takes more time to return the results.is there any solution?</p>

<pre><code>ContentResolver cr = getContentResolver();
        int index=0;
        Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI,
                null, null, null, null);

        if (cur.getCount() &gt; 0) 
        {
            phoneNames=new String[cur.getCount()];
            phoneNumbers=new String[cur.getCount()];
        while (cur.moveToNext())
        {
            String id = cur.getString(
                        cur.getColumnIndex(ContactsContract.Contacts._ID));
             name = cur.getString(
                        cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));



        if (Integer.parseInt(cur.getString(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) &gt; 0)
        {

             phoneNames[index]=name;
            Cursor pCur = cr.query(
                    ContactsContract.CommonDataKinds.Phone.CONTENT_URI, 
                    null,
                    ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = ?", 
                    new String[]{id}, null);


                    while (pCur.moveToNext()) 
                    {
                        phoneIndex++;
                        phoneNumbers[index] = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
                        index++;
                    } 
                    pCur.close();

            }     
        }  
</code></pre>
