当前位置: 首页 > 知识库问答 >
问题:

从Picasa//Google+同步文件夹中获取图库中的图像不起作用

商皓
2023-03-14

我正在尝试从Google+同步照片的一个文件夹中的gallery应用程序获取图像。选择映像后,Uri将被正确地传回。但是当我试图在存储设备上获取那个图像的实际路径,以便我可以使用它时,它崩溃了。问题似乎特别出在picasa内容提供商身上。

在Nexus S和Nexus 7以及其他设备上进行了测试。

E/AndroidRuntime(14572): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=Intent { dat=content://com.google.android.gallery3d.provider/picasa/item/5427003652908228690 }}

在这里,dat字段似乎正确地传递了Uri,但当我试图获取图像的位置时,它崩溃了,出现以下错误。

W/GalleryProvider(14381): unsupported column: _data

Picasa相册的内容提供程序似乎没有_data字段。

获取位置的代码是:

// imageUri is the Uri from above.
String[] proj = { MediaStore.Images.Media.DATA };
Cursor cursor = context.getContentResolver().query(imageUri, proj,null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();

String filePath = cursor.getString(column_index);
cursor.close();
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);

共有1个答案

蓬琦
2023-03-14

我现在浪费了很多时间,现在我找到了一个解决方案,它在所有情况下都能工作,没有任何魔术下载在特殊的线程或什么的。下面的方法从用户选择的内容返回一个流,这可以在野外工作。

FileInputStream getSourceStream(Uri u) throws FileNotFoundException {
    FileInputStream out = null;
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        ParcelFileDescriptor parcelFileDescriptor =
                mContext.getContentResolver().openFileDescriptor(u, "r");
        FileDescriptor fileDescriptor = parcelFileDescriptor.getFileDescriptor();
        out = new FileInputStream(fileDescriptor);
    } else {
        out = (FileInputStream) mContext.getContentResolver().openInputStream(u);
    }
    return out;
}
 类似资料:
  • 本文向大家介绍从PHP文件夹中获取所有图像,包括了从PHP文件夹中获取所有图像的使用技巧和注意事项,需要的朋友参考一下 glob函数可用于从特定文件夹获取图像。以下是相同的示例代码- 指定图像文件夹的路径,并提取所有扩展名为.png的文件。它们在foreach循环的帮助下显示- 基于包含所有图像的文件夹,返回存在于文件夹内的每个图像的路径。

  • 当我在eclipse中导出可执行jar文件时,我需要获取res文件夹进行编译,当我使用方法时,它不起作用。 当前读取图像代码 不起作用的代码

  • 当一张新照片添加到应用程序的照片“集合”中时,就会调用该方法。当已知是本地图像时(即:如果照片是从应用程序内部拍摄的,或者OnActivityResult的数据参数为空),则本地参数设置为true,我尝试从媒体内容提供商获取content://uri,以便获得有效的图像id传递给Thumbnails.getThumbnail。该代码对于从相机应用程序(通过startActivityForResul

  • 我正在从FFmpeg中的图像制作视频。我想知道我是否可以从放置在不同文件夹中的图像制作视频。就像第一张图片放在folder1和folder2中一样,我可以在folder1和folder2中使用这两张图片来制作一个具有这两张图片的视频。只是想知道我可以使用来自两个不同文件夹的图像来制作一个视频。我怎么能这么做呢?

  • 我正在做一个使用HDR传感器的项目。 我们每幅图像读取4幅“图像”- 为了获得具有最高可能动态范围的输出图像,“混合”这4幅图像的最佳方式是什么? 有没有人可以举一个没有OpenCV这样的外部库的好例子? 这应该在C应用程序中实时工作。 谢谢

  • 问题内容: 我需要一种从本地文件夹中获取所有图像的方法,以便在本地也可以运行演示文稿。由于这是不可能的,服务器将不会尝试从本地文件夹中获取图像。 我需要使用.js,因为它无法在本地PC上运行,因此无法使用.php(这样会更容易)。 说我需要从 学习中 获取所有图像 / 问题答案: 我认为您最好的选择是在Javascript中使用新的File API。是具有很多从文件系统读取文件的功能。 (代码从这