Android Obtenga una imagen de contacto del registro de llamadas

Fue bastante fácil obtener la imagen de contacto al consultar elPeople.CONTENT_URI, con un simple

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

porque conocía la identificación de contacto. Ahora tengo que hacer lo mismo después de acceder al registro de llamadas. Con

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

Obtengo la lista del registro de llamadas, pero no encuentro ninguna forma de vincular esto con la identificación de contacto necesaria para cargar la foto. La aplicación funciona desde el nivel de API 4+.

Cualquier ayuda es apreciada. Gracias

La solución, según lo guiado por Cristian a continuación, que funciona para mí es:

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

Respuestas a la pregunta(5)

Su respuesta a la pregunta