【发布时间】:2011-09-30 16:21:09
【问题描述】:
查询People.CONTENT_URI时很容易得到联系人图片,很简单
People.loadContactPhoto(activity, ContentUris.withAppendedId(People.CONTENT_URI, contactId)
因为我知道联系人 ID。现在我需要在访问通话记录后做同样的事情。与:
String[] strFields = {
android.provider.CallLog.Calls.CACHED_NAME,
android.provider.CallLog.Calls.NUMBER,
};
String strUriCalls="content://call_log/calls";
Uri UriCalls = Uri.parse(strUriCalls);
Cursor cursorLog = this.getContentResolver().query(UriCalls, strFields, null, null, null);
我从通话记录中获取列表,但我找不到任何方法将其与加载照片所需的联系人 ID 相关联。该应用程序从 api 级别 4+ 开始工作。
感谢任何帮助。谢谢。
按照下面 Cristian 的指导,对我有用的解决方案是:
private long getContactIdFromNumber(String number) {
String[] projection = new String[]{Contacts.Phones.PERSON_ID};
Uri contactUri = Uri.withAppendedPath(Contacts.Phones.CONTENT_FILTER_URL,Uri.encode(number));
Cursor c = getContentResolver().query(contactUri, projection, null, null, null);
if (c.moveToFirst()) {
long contactId=c.getLong(c.getColumnIndex(Contacts.Phones.PERSON_ID));
return contactId;
}
return -1;
}
【问题讨论】:
标签: android contacts android-contacts calllog