Kakey
Kakey

Reputation: 4024

Reading contacts in Android

I am writing the program for reading contacts from android.when i am executing the following code it successfully gets the name but failed to get phone number and showing the ArrayIndexoutofBoundException....The code is

Cursor people = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);

while(people.moveToNext()) 
{
    int nameFieldColumnIndex = people.getColumnIndex(PhoneLookup.DISPLAY_NAME);
    String contact = people.getString(nameFieldColumnIndex);
    contactView.append(contact);

    int numberFieldColumnIndex = people.getColumnIndex(PhoneLookup.NUMBER);

    String number = people.getString(numberFieldColumnIndex);
    contactView.append(number);
}

Upvotes: 1

Views: 844

Answers (1)

Aaron Saunders
Aaron Saunders

Reputation: 33345

http://www.higherpass.com/Android/Tutorials/Working-With-Android-Contacts/

boolean hasPhone = (Integer.parseInt(people.getString(
                       people.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0);  
 if (hasPhone)  
 {
     Cursor pCur = cr.query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, 
                   null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = ?", 
                   new String[]{id}, null);
     while (pCur.moveToNext()) {
        // process phone numbers
     } 
     pCur.close();
 }

Upvotes: 1

Related Questions