Wyświetlanie zdjęcia kontaktu przez photo_ID

Pozwalam użytkownikowi wybrać kontakt w mojej aplikacji i wyświetlać go na widżecie ekranu głównego, ale zdjęcie nie jest wyświetlane i nie wiem, co jest nie tak.

W ten sposób otrzymuję odniesienie do zdjęcia:

...
Cursor c = null;
try {
    c = getContentResolver().query(uri, new String[] {
            ContactsContract.CommonDataKinds.Phone.NUMBER,
            ContactsContract.CommonDataKinds.Phone.TYPE,
            ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,
            ContactsContract.CommonDataKinds.Phone.PHOTO_ID },
            null, null, null);

    if (c != null && c.moveToFirst()) {
        String number = c.getString(0);
        int type = c.getInt(1);
        String name = c.getString(2);
        int photo = c.getInt(3);
        showSelectedNumber(type, number, name, photo);
    }
}

Tak to wyświetlam:

public void showSelectedNumber(int type, String number, String name, int photo) {
    mAppWidgetPrefix.setText(name);
    pickedNumber.setText(number);
    pickedPhoto.setImageResource(photo);
}

Dlaczego to nie działa?

questionAnswers(1)

yourAnswerToTheQuestion