Reputation: 157
This is the code
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);
the file to open is into /data/data/it.android.myprogram/images if I do :
File dir = new File(DIR_IMAGE);
String[] files = dir.list();
The var files contain all files but when I start
intent.setDataAndType(u, "image/*");
startActivity(intent);
It dispaly the message Impossible to find /data/data/it.android.myprogram/images/img1.jpg
Why ??
Upvotes: 3
Views: 8645
Reputation: 195
Files in /data/data/it.android.myprogram
are only accessible by your application. If you want to send them via Intent to others applications, you must copy content in using openFileOutput
method of your activity.
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/*");
Hope it helps
Upvotes: 5