Android:使用ACTION视图打开图像的URI

时间:2011-09-13 08:39:29

标签: android actionview

这是代码

protected static final String DIR_IMAGE = "/data/data/it.android.myprogram/images/";
Intent intent = new Intent(); 
intent.setAction(android.content.Intent.ACTION_VIEW); 
Uri u = Uri.fromFile(destinationFile);
intent.setDataAndType(u, "image/*");
startActivity(intent); 

如果我这样做,要打开的文件是/data/data/it.android.myprogram/images:

File dir = new File(DIR_IMAGE);
String[] files = dir.list();

var文件包含所有文件,但是当我开始时

intent.setDataAndType(u, "image/*");
startActivity(intent); 

显示无法找到的信息/data/data/it.android.myprogram/images/img1.jpg

为什么??

1 个答案:

答案 0 :(得分:6)

/data/data/it.android.myprogram中的文件只能由您的应用程序访问。如果您想通过Intent将它们发送给其他应用程序,则必须使用活动的openFileOutput方法复制内容。

protected static final String DIR_IMAGE = "/data/data/it.android.myprogram/images/";
String filePath = DIR_IMAGE + "fileName";
FileInputStream fileInputStream = new FileInputStream(new File(filePath));
FileOutputStream fileOutputStream = openFileOutput("fileName", Activity.MODE_WORLD_READABLE);
ByteStreams.copy(fileInputStream, fileOutputStream);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse("content://it.android.myprogram/fileName"), "image/*");

希望有所帮助