ContactsContract.Directory - 如何返回照片?

时间:2011-09-15 20:18:01

标签: android directory contacts android-3.0-honeycomb photo

我试图找出为什么我似乎无法通过ContactsContract.Directory将照片Uri(Uri.parse(http://url/image.png))传递给联系人应用

我有一个允许搜索地址簿的网络服务。其中一个返回的字段是联系人的网址,该网址位于我已验证的网络服务器上,可从我的Honeycomb平板电脑访问。

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

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

if (column.equals(Directory.PHOTO_SUPPORT)) {
                    row[i] = Directory.PHOTO_SUPPORT_FULL;
                }

我已尝试过Directory.PHOTO_SUPPORT *的所有组合,但似乎没有任何区别。

我唯一的想法是联系人应用不支持从网址下载照片。所以我也试过了

    File myFile  = new File("/sdcard/testuser.jpg");
row[photoUri] = Uri.fromFile(myFile);

我确认testuser.jpg在sdcard上。这很好。但是由于目录搜索的完成方式,我想在运行时加载它,而不是缓存(暂时)到SD卡。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

我想我找到了答案..看起来在Verbose中记录了异常(我的logcat设置为Debug)。无论如何,对此非常肯定,但看起来没有http uri的提供者。关闭创建内容提供商,只是不确定我将如何从内容提供商返回图像,但会弄清楚。任何提示/提示将不胜感激并给予答复。

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)