Я пытаюсь просмотреть/открыть несколько файлов, загруженных в хранилище приложений, но по какой-то причине у порожденной активности действия не было разрешения на откройте файл. Ниже fileEntity.getFile()
возвращает экземпляр файла.Намерение с видом действия не имеет разрешения на просмотр файла
Uri uri = Uri.fromFile(fileEntity.getFile());
Debugger.message("Viewing file of type " + file.mime + " at " + uri);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setDataAndType(uri, fileEntity.mime);
startActivity(intent);
Выходы:
10: 44: 10,161 5660 com.app VERBOSE Смотрит файл типа приложения/PDF в файл: ///data/user/0/com.app/files /1_lol.pdf
10: 44: 10,421 2551 # 2551 ОШИБКА DisplayData openFd: java.io.FileNotFoundException: отказано в
10: 44: 10.421 2551 # 2551 ОШИБКА PdfLoader не удается загрузить файл (Безразлично» t open) Отображаемые данные [PDF: 1_lol.pdf] + FileOpenable, uri: file: // /data/user/0/com.app/files/1_lol.pdf
Это, как я сохранить файл первоначально, который, кажется, работают:
File file = fileEntity.getFile();
FileOutputStream fos = new FileOutputStream(file);
HttpResponse response = getClient().rawRequest(fileEntity.url);
response.getEntity().writeTo(fos);
response.getEntity().consumeContent();
fos.flush();
fos.close();
Проблема заключается в том, что файл один раз загрузить невозможно.
Я что-то упустил или не понял, как работает внутреннее хранилище?
У меня есть эти разрешения в манифесте android;
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Edit Так, из всех примеров в документации андроида мне не удалось найти какие-либо ресурсы о FileProvider
в AppCompat библиотеки. После instructions here помогло решить проблему.
'файл: /// data/user/0/com.app' является частным хранилищем приложений – Selvin
@Selvin Да, именно это я и стремился. Однако я не думал, что это предотвратит просмотр документов PDF, если я создам действие намерения. – Daniel
использовать поставщик файлов ... – Selvin