если вы работаете с минимальным SDK ...

довольно легко получить изображение контакта при запросеPeople.CONTENT_URIс простым

People.loadContactPhoto(activity, ContentUris.withAppendedId(People.CONTENT_URI, contactId)

потому что я знал контактный идентификатор. Теперь мне нужно сделать то же самое после доступа к журналу вызовов. С участием:

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);

Я получаю список из журнала вызовов, но не могу найти способа связать это с идентификатором контакта, необходимым для загрузки фотографии. Приложение работает с уровня 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;
    }

Ответы на вопрос(5)

Ваш ответ на вопрос