读取联系人的代码片段
private int getContacts(){
ArrayList<String> contactsPho=new ArrayList<String>();
ContentResolver resolver=getContentResolver();
String[] projection=new String[]{ContactsContract.CommonDataKinds.Phone.NUMBER};
Cursor phoneCursor =resolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,projection,null,null,null);
if(phoneCursor!=null)
{
while(phoneCursor.moveToNext()) {
String contactsPhone = phoneCursor.getString(0);
contactsPho.add(contactsPhone);
}
phoneCursor.close();
return contactsPho.size();
}
else
return 0;
}
public void TestContact() {
Uri uri = Uri.parse("content://com.android.contacts/contacts");
ContentResolver resolver = MyApplication.getContextObject().getContentResolver();
Cursor cursor = resolver.query(uri, new String[]{"_id"}, null, null, null);
while (cursor.moveToNext()) {
int contractID = cursor.getInt(0);
StringBuilder sb = new StringBuilder("contractID=");
sb.append(contractID);
uri = Uri.parse("content://com.android.contacts/contacts/" + contractID + "/data");
Cursor cursor1 = resolver.query(uri, new String[]{"mimetype", "data1", "data2"}, null, null, null);
while (cursor1.moveToNext()) {
Contactor c=new Contactor();
String data1 = cursor1.getString(cursor1.getColumnIndex("data1"));
String mimeType = cursor1.getString(cursor1.getColumnIndex("mimetype"));
if ("vnd.android.cursor.item/name".equals(mimeType)) { //是姓名
c.setName(data1);
sb.append(",name=" + data1);
} else if ("vnd.android.cursor.item/email_v2".equals(mimeType)) { //邮箱
c.setEmail(data1);
sb.append(",email=" + data1);
} else if ("vnd.android.cursor.item/phone_v2".equals(mimeType)) { //手机
c.setPhoneNumber(data1);
sb.append(",phone=" + data1);
}
ContactLab.get(getParent()).addContactor(c);
}
cursor1.close();
Log.i("TAG", sb.toString());
}
cursor.close();
}
@TargetApi(Build.VERSION_CODES.M)
public void testReadAllContacts() {
int hasWriteContactsPermission= ContextCompat.checkSelfPermission(MainActivity.this,android.Manifest.permission.WRITE_CONTACTS);
if (hasWriteContactsPermission != PackageManager.PERMISSION_GRANTED) {
requestPermissions(new String[]{android.Manifest.permission.WRITE_CONTACTS},
REQUEST_CODE_ASK_PERMISSIONS);
return;
}
Cursor cursor = this.getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,
null, null, null, null);
int contactIdIndex = 0;
int nameIndex = 0;
if(cursor.getCount() > 0) {
contactIdIndex = cursor.getColumnIndex(ContactsContract.Contacts._ID);
nameIndex = cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);
}
while(cursor.moveToNext()) {
Contactor c=new Contactor();
String contactId = cursor.getString(contactIdIndex);
String name = cursor.getString(nameIndex);
Log.i("TAG", contactId);
Log.i("TAG", name);
c.setName(name);
c.setRemarkName(name);
/*
* 查找该联系人的phone信息
*/
Cursor phones = this.getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=" + contactId,
null, null);
int phoneIndex = 0;
if(phones.getCount() > 0) {
phoneIndex = phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER);
}
while(phones.moveToNext()) {
String phoneNumber = phones.getString(phoneIndex);
Log.i("TAG", phoneNumber);
c.setPhoneNumber(phoneNumber);
}
/*
* 查找该联系人的email信息
*/
Cursor emails = this.getContentResolver().query(ContactsContract.CommonDataKinds.Email.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Email.CONTACT_ID + "=" + contactId,
null, null);
int emailIndex = 0;
if(emails.getCount() > 0) {
emailIndex = emails.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA);
}
while(emails.moveToNext()) {
String email = emails.getString(emailIndex);
Log.i("TAG", email);
c.setEmail(email);;
}
ContactLab.get(getParent()).addContactor(c);
}