Изображение контакта для журнала вызовов в Android

Я разрабатываю приложение для Android, в котором я показываю журналы вызовов и сведения о вызовах.

Я хочу отобразить изображение контакта в журнале вызовов. Я могу получить идентификатор контакта и uri из идентификатора контакта, но я получаю следующее исключение для всех контактов:

java.io.FileNotFoundException: File does not exist; URI: content://com.android.contacts/contacts/171

Вот приведенный ниже код, который я пробовал:

Cursor managedCursor = getContentResolver().query( CallLog.Calls.CONTENT_URI,null, null,null,  android.provider.CallLog.Calls.DEFAULT_SORT_ORDER);
while ( managedCursor.moveToNext() )
{
  contactId = getContactIDFromNumber(phNumber,this);
  Uri uri = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, contactId);

}
 public static int getContactIDFromNumber(String contactNumber,Context context)
 {
    int phoneContactID = new Random().nextInt();
    Cursor contactLookupCursor = context.getContentResolver().query(Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI,Uri.encode(contactNumber)),new String[] {PhoneLookup.DISPLAY_NAME, PhoneLookup._ID}, null, null, null);
    while(contactLookupCursor.moveToNext()){
        phoneContactID = contactLookupCursor.getInt(contactLookupCursor.getColumnIndexOrThrow(PhoneLookup._ID));
    }
    contactLookupCursor.close();

    return phoneContactID;
}


  public static Bitmap getContactBitmapFromURI(Context context, Uri uri)
  {
    InputStream input = null;
    try
    {
        input = context.getContentResolver().openInputStream(uri);  

        //input = Contacts.openContactPhotoInputStream(context.getContentResolver(), uri);
    }
    catch (FileNotFoundException e)
    {
        e.printStackTrace();
    }
    if (input == null)
    {
        return null;
    }   

    return BitmapFactory.decodeStream(input);
}

person LISA    schedule 18.06.2013    source источник
comment
вы не можете иметь доступ к данным другого приложения. Если вы рутировали свой телефон, вы можете обойти это ограничение.   -  person dumbfingers    schedule 18.06.2013
comment
@ ss1271: я думаю, это неправильно   -  person LISA    schedule 18.06.2013
comment
Попробуйте ответ vikramjb здесь: title="получение идентификатора контакта из базы данных контактов Android не работает должным образом"> stackoverflow.com/questions/7356796/   -  person walla    schedule 23.01.2016