gpt4 book ai didi

android - 借助联系人 ID 获取联系人的所有详细信息

转载 作者:行者123 更新时间:2023-11-30 00:12:55 24 4
gpt4 key购买 nike

我确实有可用的联系 ID。有什么方法可以获取联系人的所有详细信息(借助联系人 ID)?

已经有一个question Stack Over flow 上存在相同的问题,但答案似乎已过时且不再有效。

最佳答案

使用联系人 ID 获取联系人所有详细信息的代码 fragment 。

public static ModelContact getContactDetails(final Context context, String contactId) {

ModelContact contact = new ModelContact();
contact.setContactId(contactId);

Cursor cursor = context.getContentResolver().query(ContactsContract.Data.CONTENT_URI,
new String[]{ContactsContract.Data._ID,
ContactsContract.Data.MIMETYPE,
ContactsContract.Data.DISPLAY_NAME,
ContactsContract.Data.RAW_CONTACT_ID,
ContactsContract.Data.LOOKUP_KEY,
ContactsContract.Data.DATA1,
ContactsContract.Data.DATA2,
ContactsContract.Data.DATA3,
ContactsContract.Data.DATA4,
ContactsContract.Data.DATA5,
ContactsContract.Data.DATA6,
ContactsContract.Data.DATA7,
ContactsContract.Data.DATA8,
ContactsContract.Data.DATA10},

ContactsContract.Data.CONTACT_ID + "=?" + " AND "
+ "(" + ContactsContract.Data.MIMETYPE + "='" + ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE + "' OR "
+ ContactsContract.Data.MIMETYPE + "='" + ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE + "' OR "
+ ContactsContract.Data.MIMETYPE + "='" + ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE + "' OR "
+ ContactsContract.Data.MIMETYPE + "='" + ContactsContract.CommonDataKinds.Organization.CONTENT_ITEM_TYPE + "' OR "
+ ContactsContract.Data.MIMETYPE + "='" + ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE + "')",
new String[]{contactId}, null);

if (cursor != null && cursor.getCount() > 0) {

while (cursor.moveToNext()) {
String displayName = cursor.getString(cursor.getColumnIndex(ContactsContract.Data.DISPLAY_NAME));
contact.setDisplayName(displayName);
String rowContactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Data.RAW_CONTACT_ID));
contact.setRawContactId(rowContactId);
String lookUpKey = cursor.getString(cursor.getColumnIndex(ContactsContract.Data.LOOKUP_KEY));
contact.setLookupKey(lookUpKey);

String mimeType = cursor.getString(cursor.getColumnIndex(ContactsContract.Data.MIMETYPE));
if (mimeType.equals(ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE)) {
setPhoneList(cursor, contact);
} else if (mimeType.equals(ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE)) {
setEmailList(cursor, contact);
} else if (mimeType.equals(ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE)) {
setStructuredName(cursor, contact);
} else if (mimeType.equals(ContactsContract.CommonDataKinds.Organization.CONTENT_ITEM_TYPE)) {
setOrganization(cursor, contact);
} else if (mimeType.equals(ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE)) {
setAddress(cursor, contact);
}
}

cursor.close();
}
return contact;
}

有关详细信息,请查看以下链接。

ContactHelper.java

希望对您有所帮助。

关于android - 借助联系人 ID 获取联系人的所有详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47856572/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com