Я уже пробовал FileProvider
, который может генерировать Uri, с помощью которого вызванное приложение чтения может открыть файл, но pdf не может быть отредактировано .
мой код:
Intent it=new Intent(Intent.ACTION_VIEW);
File f = new File("/sdcard/t.pdf");
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
Uri contentUri = FileProvider.getUriForFile(this, "com.knziha.fileProvider", f);
it.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
it.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
it.setDataAndType(contentUri, "application/pdf");
} else {
it.setData(Uri.fromFile(f));
it.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
...
}
startActivity(it);
, где файл-провайдер настроен правильно.
Используя это, я могу вызвать ezpdf Reader или Adobe Acrobat Viewer, чтобы открыть файл PDF, который находится в хранилище /sdcard/
, но я не могу его редактировать.
Читатель Ezpdf произносит тост, который оплакивает: «О, этот файл открыт из DATA STREAM, и я не могу его отредактировать!»
Android adobe acrobat ничего не делает и делает вид, что файл редактируется.Но после перезапуска все прошло.
У некоторых файловых менеджеров Android также есть эта проблема. Они не изощренны при открытии файлов.
Но файлы google идут, и файловый менеджер estrong отлично с этим справляется.
Как?