獲取聯繫人圖片這是很容易查詢People.CONTENT_URI
時,爲了獲得聯繫人圖片,用一個簡單的的Android從通話記錄中
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+起作用。
任何幫助表示讚賞。謝謝。
的解決方案,如克里斯蒂安以下,這對我工作的指導是:
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;
}
該解決方案似乎正是我想做的事情。唯一的問題是它不會返回正確的ID。例如,對於ID爲110的聯繫人,它返回ID爲713.我相信110是正確的,因爲它爲ID 110加載正確的照片。我是否錯過了什麼?謝謝大家的支持。 – Alin
啊,而不是使用Contacts.Phones._ID,如果我使用Contacts.Phones.PERSON_ID它的作品。謝謝Cristian – Alin