我已经尝试过FileProvider
,它可以生成一个Uri,所调用的阅读器应用可以通过该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);
fileprovider设置正确的位置。
使用此方法,我可以调用ezpdf阅读器或Adobe Acrobat Viewer打开位于/sdcard/
存储库中的pdf文件,但是我无法对其进行编辑。
Ezpdf阅读器举杯哀悼:“哦,这个文件是从DATA STREAM中打开的,我不能编辑它!
Android adobe acrobat不执行任何操作,并假装文件正在编辑中。但是重新启动后一切都消失了。
某些android文件管理器也存在此问题。它们在打开文件时并不复杂。
但是,谷歌文件去了,强大的文件管理器可以很好地解决这个问题。
如何?