Мне нужно открыть во внешнем приложении (например, Adobe Reader) некоторые файлы PDF, расположенные внутри приложения (необработанная папка)
Я пытаюсь использовать этот код, который отлично работает, если файлы находятся на SD-карте, но, если я пытаюсь поместить каталог приложения (пакета) в строку файла, ничего не происходит:
public void onClick(View v) {
File file = new File("/sdcard/myfile2.pdf");
if (file.exists()) {
Uri path = Uri.fromFile(file);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(path, "application/pdf");
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
try {
startActivity(intent);
}
catch (ActivityNotFoundException e) {
Toast.makeText(referencias.this,
"No Application Available to View PDF",
Toast.LENGTH_SHORT).show();
}
}
}
Также я попробую этот код.
Приложение Adobe Reader открыто, но я получаю неверную ошибку каталога доступа:
public void onClick(View v) {
Intent i = new Intent();
i.setAction(Intent.ACTION_VIEW);
i.setDataAndType(Uri.parse("file:///data/app/mypackage/res/raw/myfile.pdf"),
"application/pdf");
try{
startActivity(i);
}
catch (ActivityNotFoundException e) {
Toast.makeText(referencias.this,
"No Application Available to View PDF",
Toast.LENGTH_SHORT).show();
}
Последнее решение состоит в том, чтобы каждый раз копировать файл pdf из папки raw на SD-карту, как в этом руководстве .
Но это действительно сложно и много кода.