我正在尝试使用共享意图共享保存到内部存储的图像文件。 我意图后的图像文件不显示。
我使用以下代码保存图像文件
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);
告诉我文件不存在。
请帮我解决这个问题。
答案 0 :(得分:2)
如果我正确,你想在应用程序之间共享图像。您的问题是您在编写文件时使用Context.MODE_PRIVATE
,因此其他应用程序无法访问此文件。
要分享图片,您可以使用MediaProvider限制对媒体的访问,或者只使用Context.MODE_WORLD_READABLE
,但该文件将是公共可读的。