2

我有一个字符串文件名,它是 android 设备外部存储上图片文件夹的路径。我正在使用字符串通过opencv保存图像。然后我想发送一个分享意图与其他应用程序分享保存的图像。

Highgui.imwrite(filename, Image);
Log.d("WRITEPATH", filename);

在 LogCat 中,我得到了 WRITEPATH:

/storage/emulated/0/Pictures/MyImages/Image1.jpg

然后我将文件路径字符串转换为 uri:

Uri lastsavedUri=Uri.parse(new File(filename).toString())

并发送我的分享意图:

Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND_MULTIPLE);
shareIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, SavedImages);
shareIntent.setType("image/*");
startActivity(Intent.createChooser(shareIntent, "Share images to.."));

SavedImages是一个包含多个lastsavedUri的 ArrayList

不幸的是,没有应用程序可以找到我要分享的图像。例如,单击发送邮件后 Gmail 崩溃,我收到 logcat 错误

10-07 10:19:47.265:E/Gmail(26264):无法获取缩略图/storage/emulated/0/Pictures/MyImages/Image1.jpg 的方向 10-07 10:19:47.265:E/Gmail(26264 ):java.io.FileNotFoundException:没有内容提供者:/storage/emulated/0/Pictures/MyImages/Image1.jpg

为什么我可以使用文件路径字符串保存我的图像,但为什么我不能共享保存的图像?路径不正确,如何获得保存图像的正确路径?

4

1 回答 1

5

我试过了

File saveFile = new File(filename);
SavedImages.add(Uri.fromFile(saveFile));

代替

Uri lastsavedUri=Uri.parse(new File(filename).toString())
SavedImages.add(lastsavedUri);

现在它正在工作。我不明白为什么,但它有效。

于 2013-10-07T15:34:51.387 回答