首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ContactsContract.Directory -如何返回照片?

ContactsContract.Directory -如何返回照片?
EN

Stack Overflow用户
提问于 2011-09-16 04:18:01
回答 1查看 605关注 0票数 0

我正在尝试弄清楚为什么我不能通过ContactsContract.Directory将照片Uri (Uri.parse(http://url/image.png))传递给联系人应用程序

我有一个允许搜索地址簿的web服务。其中一个返回的字段是联系人的url,它驻留在the服务器上,我已经验证了该服务器可以从我的Honeycomb平板电脑访问。

我的ContactsContract.Directory似乎可以完美地返回结果,但是当我将其作为过滤器查询Contacts.PHOTO_THUMBNAIL_URI w/ Uri.parse(http://url/image.png)的一部分传回时,搜索结果仍然会按预期返回,但我仍然只看到临时模板。

目录查询的uri具有支持照片的选项。

代码语言:javascript
复制
if (column.equals(Directory.PHOTO_SUPPORT)) {
                    row[i] = Directory.PHOTO_SUPPORT_FULL;
                }

我已经尝试了Directory.PHOTO_SUPPORT*的所有组合,但似乎没有一个是有区别的。

我唯一的想法是,联系人应用程序不支持从URL下载照片。所以我也试着

代码语言:javascript
复制
    File myFile  = new File("/sdcard/testuser.jpg");
row[photoUri] = Uri.fromFile(myFile);

我证实了testuser.jpg在SD卡上。这样做效果很好。然而,由于目录搜索的方式,我想在运行时加载它,而不是(暂时)缓存到SD卡。

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-16 23:26:10

我想我已经找到答案了。看起来异常是以详细的方式记录的(我的logcat设置为Debug)。无论如何,我很确定这一点,但看起来没有http uri的提供商。关闭以创建内容提供商,只是不确定如何从内容提供商返回图像,但会弄清楚的。如有任何提示/提示,我们将不胜感激,并给予回答积分。

代码语言:javascript
复制
09-16 10:20:25.550: VERBOSE/ContactPhotoManager(11691): java.io.FileNotFoundException: No content provider: http://domain/testimage.jpg
09-16 10:20:25.550: VERBOSE/ContactPhotoManager(11691):     at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:595)
09-16 10:20:25.550: VERBOSE/ContactPhotoManager(11691):     at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:527)
09-16 10:20:25.550: VERBOSE/ContactPhotoManager(11691):     at android.content.ContentResolver.openInputStream(ContentResolver.java:362)
09-16 10:20:25.550: VERBOSE/ContactPhotoManager(11691):     at com.android.contacts.ContactPhotoManagerImpl$LoaderThread.loadRemotePhotos(ContactPhotoManager.java:722)
09-16 10:20:25.550: VERBOSE/ContactPhotoManager(11691):     at com.android.contacts.ContactPhotoManagerImpl$LoaderThread.loadPhotosInBackground(ContactPhotoManager.java:652)
09-16 10:20:25.550: VERBOSE/ContactPhotoManager(11691):     at com.android.contacts.ContactPhotoManagerImpl$LoaderThread.handleMessage(ContactPhotoManager.java:563)
09-16 10:20:25.550: VERBOSE/ContactPhotoManager(11691):     at android.os.Handler.dispatchMessage(Handler.java:95)
09-16 10:20:25.550: VERBOSE/ContactPhotoManager(11691):     at android.os.Looper.loop(Looper.java:132)
09-16 10:20:25.550: VERBOSE/ContactPhotoManager(11691):     at android.os.HandlerThread.run(HandlerThread.java:60)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7436969

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档