1、发送意图,跳转到通讯录界面
Intent intent = new Intent();
intent.setAction(Intent.ACTION_PICK);
intent.setData(ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(intent, REQUEST_CONTACT);
2、在onActivityResult方法中接收选择的uri数据
if (data == null) {
return;
}
Uri result = data.getData();
String[] contact = getPhoneContacts(result);
Tools.debug(TAG, "contactName = "+contact[0]+", "+contact[1]);
3、getPhoneContacts(result);方法实现
private String[] getPhoneContacts(Uri uri) {
String[] contact = new String[2];
//得到ContentResolver对象
ContentResolver cr = getContentResolver();
//取得电话本中开始一项的光标
Cursor cursor = cr.query(uri, null, null, null, null);
if(cursor != null){
cursor.moveToFirst();
//取得联系人名字
int nameFieldColumnIndex = cursor.getColumnIndex(PhoneLookup.DISPLAY_NAME);
contact[0] = cursor.getString(nameFieldColumnIndex);
//取得电话号码
String ContactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
Cursor phone = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=" + ContactId, null, null);
if(phone != null){
phone.moveToFirst();
contact[1] = phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
}
phone.close();
cursor.close();
}else{
Tools.debug(TAG, "get Contacts is fail");
}
return contact;
}