android 在具有写入权限的外部应用程序中打开PDF文件

mbjcgjjk  于 2023-02-11  发布在  Android
关注(0)|答案(1)|浏览(182)

我正在使用Launcher.Default.OpenAsync(OpenFileRequest request)在外部PDF编辑器中打开PDF文件。文件加载正确,但要编辑文档,此外部应用程序要求您制作副本并编辑该副本,而不是原始文件。如果我使用设备(Galaxy Tab S6 Lite)文件资源管理器打开PDF,我可以编辑原始文件,但如果我从MAUI应用程序打开同一文件,则无法执行相同操作。
我看到OpenFileRequest构造函数请求一个ReadOnlyFile。有没有方法可以创建一个具有写权限的"OpenFileRequest",或者有没有其他方法可以启动文档编辑器,这样我就可以编辑它,而不必创建副本?
示例代码:

var filename = "example.pdf";
var file = new ReadOnlyFile(filename);
var openFileRequest = new OpenFileRequest("PDF Document", file);
await Launcher.Default.OpenAsync(openFileRequest);
tf7tbtn2

tf7tbtn21#

我也试过用其他应用程序的Pdf编辑器编辑pdf文件,但都需要保存为其他文件,所以似乎只有文件资源管理器才能编辑原始文件。
另外,ReadOnlyFile是从FileBase继承的,因此您可以尝试:

var filename = "example.pdf";
var file = new ReadOnlyFile(filename);
var openFileRequest = new OpenFileRequest("PDF Document", file as FileBase);
await Launcher.Default.OpenAsync(openFileRequest);

实际上,其他应用程序没有权限在您的应用程序中写入文件。您可以参考这个关于editing pdf with external application does not overwrite existing file的案例。
我找不到任何本地android API来授予其他应用程序对现有文件的写权限。这应该是android的权限限制。

相关问题