попробуйте использовать:
String[] projection = new String[] { Data._ID,
ContactsContract.Contacts.DISPLAY_NAME, Phone.TYPE};
Cursor cur = cr.query(ContactsContract.Data.CONTENT_URI,
projection, null, null, null);
РЕДАКТИРОВАТЬ: я только что понял, это тот же вопрос, что и этот ...
Вы можете попробовать следующее:
1) создать класс для представления 1 записи:
public class ContactsEntry {
String contactId;
String contactName;
String phoneType;
public String getContactId() {
return contactId;
}
public void setContactId(String contactId) {
this.contactId = contactId;
}
public String getContactName() {
return contactName;
}
public void setContactName(String contactName) {
this.contactName = contactName;
}
public String getPhoneType() {
return phoneType;
}
public void setPhoneType(String phoneType) {
this.phoneType = phoneType;
}
}
Чем в вашем коде:
while (cur.moveToNext()) {
String id = cur.getString(indexID);
String name = cur.getString(indexName);
String phoneType = cur.getString(indexPhoneType);
ContactsEntry entry = new ContactsEntry();
entry.setContactId(id);
entry.setContactName(name);
entry.setPhoneType(phoneType);
//// do some logging or whatever.
}