Android: URI для открытия изображения с ACTION View - PullRequest
2 голосов
/ 13 сентября 2011

Это код

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 Ответ

6 голосов
/ 11 августа 2012

Файлы в /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/*");

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...