public class ContactInfo {
private String id;
private String name;
private String phone;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
}
public class ContactInfoParser {
private static String TAG="ContactInfoParser";
public static List<ContactInfo> getSystemContact(Context context){
ContentResolver contentResolver=context.getContentResolver();
Uri uri=Uri.parse("content://com.android.contacts/raw_contacts");
Uri datauri=Uri.parse("content://com.android.contacts/data");
List<ContactInfo> list=new ArrayList<ContactInfo>();
Cursor cursor=contentResolver.query(uri,new String[]{"contact_id"}, null, null, null);
while(cursor.moveToNext()){
String id=cursor.getString(0);
if(id!=null){
Log.d(TAG, "<<<<id:"+id);
ContactInfo contactInfo=new ContactInfo();
contactInfo.setId(id);
Cursor dataCursor = contentResolver.query(datauri,
new String[] { "data1", "mimetype" },
"raw_contact_id=?", new String[] { id }, null);
while(dataCursor.moveToNext()){
String data1=dataCursor.getString(0);
String mimetype=dataCursor.getString(1);
if("vnd.android.cursor.item/name".equals(mimetype)){
Log.d(TAG, "<<<<name:"+data1);
contactInfo.setName(data1);
}else if("vnd.android.cursor.item/phone_v2".equals(mimetype)){
Log.d(TAG, "<<<<phone:"+data1);
contactInfo.setPhone(data1);
}
}
list.add(contactInfo);
dataCursor.close();
}
}
cursor.close();
return list;
}