Android共享意图共享图像不存在

时间:2013-01-10 08:37:40

标签: java android android-intent

我正在尝试使用共享意图共享保存到内部存储的图像文件。 我意图后的图像文件不显示。

我使用以下代码保存图像文件

try {
    FileOutputStream fos = openFileOutput("twitterimage.jpg", Context.MODE_PRIVATE);
    // Writing the bitmap to the output stream
    bikeBm.compress(Bitmap.CompressFormat.JPEG, 100, fos);
    fos.close();
} catch (Exception e) {
    Log.e("saveToInternalStorage()", e.getMessage());
}

//意图代码

File internalFile = getFileStreamPath("twitterimage.jpg");
Uri uri = Uri.fromFile(internalFile);

Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_STREAM,new File(uri));
shareIntent.setType("image/jpeg");
shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivity(Intent.createChooser(shareIntent, "send"));

当我使用上面的“uri”检查文件是否存在时,图像文件存在 在内部存储中,但使用

检查文件
String file = "data/data/com.bike.app/twitterimage.jpg";
File f = new File(file);

告诉我文件不存在。

请帮我解决这个问题。

1 个答案:

答案 0 :(得分:2)

如果我正确,你想在应用程序之间共享图像。您的问题是您在编写文件时使用Context.MODE_PRIVATE,因此其他应用程序无法访问此文件。

要分享图片,您可以使用MediaProvider限制对媒体的访问,或者只使用Context.MODE_WORLD_READABLE,但该文件将是公共可读的。

希望得到帮助