Mimmo
Mimmo

Reputation: 157

Android : URI for open an image with ACTION View

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

Answers (1)

Mickael M.
Mickael M.

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

Related Questions