Android : URI for open an image with ACTION View

戏子无情 提交于 2019-12-20 03:03:52

问题


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 ??


回答1:


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



来源:https://stackoverflow.com/questions/7399001/android-uri-for-open-an-image-with-action-view

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!