我正在尝试弄清楚为什么我不能通过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具有支持照片的选项。
if (column.equals(Directory.PHOTO_SUPPORT)) {
row[i] = Directory.PHOTO_SUPPORT_FULL;
}我已经尝试了Directory.PHOTO_SUPPORT*的所有组合,但似乎没有一个是有区别的。
我唯一的想法是,联系人应用程序不支持从URL下载照片。所以我也试着
File myFile = new File("/sdcard/testuser.jpg");
row[photoUri] = Uri.fromFile(myFile);我证实了testuser.jpg在SD卡上。这样做效果很好。然而,由于目录搜索的方式,我想在运行时加载它,而不是(暂时)缓存到SD卡。
任何帮助都将不胜感激。
发布于 2011-09-16 23:26:10
我想我已经找到答案了。看起来异常是以详细的方式记录的(我的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)https://stackoverflow.com/questions/7436969
复制相似问题