3

我想从 API 级别 10 及以上的 Android ContactsProvider 中检索完整尺寸的联系人图像。

据我了解,无法测试我是否使用 PHOTO_URI(API 级别 11)获得全尺寸照片,这似乎是使用 PHOTO_FILE_ID(API 级别 14)填充的。然后是 PHOTO_ID(API 级别 5)可以容纳是否引用照片,如果不是回退到 PHOTO_URI 或 PHOTO_THUMBNAIL_URI(API 级别 11)。我使用 2.3.3(API 级别 10)。这一切都令人困惑和困惑。

我使用 DISPLAY_PHOTO(API 级别 14),保证给我一个空值或在 ICS 以下崩溃(尚未测试)。

我还了解到,无法检索来自与 ContactsProvider 同步的 3rd 方应用程序的某些图像,并且仅用于 Android ContactsProvider,这意味着用户在手机的联系人应用程序中看到图像,但在我的应用程序中看不到图像。

您可能知道的任何解决方案都可以帮助我始终检索完整大小的 API,而不是 API 级别 10 及更高级别的缩略图?

我可以至少检索 API 级别 10 的联系人的缩略图吗?

4

1 回答 1

2

我在这篇文章中找到了一种方法,该方法可用于使用 ContactsContract API 获取 API 级别 5 及以上级别的缩略图,请在此处查看更多信息:

    public static Bitmap loadContactPhoto(ContentResolver cr, long id) {
Uri uri = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, id);
InputStream input = ContactsContract.Contacts.openContactPhotoInputStream(cr, uri);
if (input == null) {
     return getBitmapFromURL("http://thinkandroid.wordpress.com");
 }
return BitmapFactory.decodeStream(input);
} 
于 2013-11-14T06:28:06.543 回答