这是代码
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
为什么??
答案 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/*");
希望有所帮助