我想使用联系人ID访问联系人详细信息页面。(显示为图像)我试图这样做但是它的加载联系人列表不是相关的联系人详细信息页面。这是我想要使用相关联系人ID访问的界面
我使用了这段代码,
Uri contactPhotoUri = Uri.withAppendedPath(
ContactsContract.Contacts.CONTENT_URI,
String.valueOf(contact.getContactId()));
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setType(ContactsContract.Contacts.CONTENT_ITEM_TYPE);
intent.setDataAndType(contactPhotoUri,
"vnd.android.cursor.dir/contact");
getActivity().startActivity(intent);
onActivityResult方法,
ArrayList<Object> contactInfo = EntityUtils.getContact(reqCode,
resultCode, data, getActivity());
addContact(contactInfo);
getContact(),
@SuppressWarnings("deprecation")
public static ArrayList<Object> getContact(int reqCode, int resultCode, Intent data, FragmentActivity activity) {
Uri contactData = data.getData();
ArrayList<Object> contactInfo = null;
String email = null;
String officeEmail = null;
Cursor c = activity.managedQuery(contactData, null, null, null, null);
if (c.moveToFirst()) {
String id = c.getString(c.getColumnIndexOrThrow(ContactsContract.Contacts._ID));
String hasPhone = c.getString(c.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));
// String hasEmail = c
// .getString(c
// .getColumnIndex(ContactsContract.Contacts.));
String[] projection = new String[]{ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME, ContactsContract.CommonDataKinds.Phone.NUMBER,
ContactsContract.CommonDataKinds.Email.DATA, ContactsContract.Contacts._ID, ContactsContract.CommonDataKinds.Phone.PHOTO_URI};
if (hasPhone.equalsIgnoreCase("1")) {
Cursor phones = activity.getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, projection,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + id, null, null);
// To get Email ids of Contact
Cursor emails = activity.getContentResolver().query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, projection,
ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = ?", new String[]{id}, null);
phones.moveToFirst();
String cNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
String name = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
// String contactId = phones.getString(phones
// .getColumnIndex(ContactsContract.Contacts._ID));
String imageUri = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.PHOTO_URI));
while (emails.moveToNext()) {
email = emails.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
// officeEmail = emails
// .getString(phones
// .getColumnIndex(ContactsContract.CommonDataKinds.OrganizationEmail.DATA));
}
Bitmap imageBitmap = loadContactPhoto(activity.getContentResolver(), Long.parseLong(id));
// saveBitmapToFile(a);
// create contact
Contact contact = new Contact();
contact.setFirstName(name);
contact.setEmail(email);
contact.setOfficeEmail(officeEmail);
contact.setContactId(id);
contact.setImageUri(imageUri);
// create contactSourse
ContactSource cs = new ContactSource();
cs.setContactId(id);
cs.setData(cNumber);
cs.setType(email);
contactInfo = new ArrayList<Object>();
contactInfo.add(contact);
contactInfo.add(cs);
}
}
return contactInfo;
}