首页 > 解决方案 > 如何打开默认文件管理器

问题描述

我将 Delphi 10.3 用于 Android 和 IOS 应用程序。

我想打开默认文件管理器,因为它打开让我单击添加附件,例如在 gmail 中。

要从设备中获取任何图像,我使用 TakePhotoFromLibraryAction 操作。如何对 PDF 文件执行相同操作?

标签: androidiosdelphifiremonkey

解决方案


If you're using Delphi 10.3.x, this will open a PDF on Android if you have a PDF viewer installed:

procedure OpenPDF(const AFileName: string);
var
  LIntent: JIntent;
  LUri: Jnet_Uri;
begin
  LUri := TAndroidHelper.JFileToJURI(TJFile.JavaClass.init(StringToJString(AFileName)));
  LIntent := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_VIEW);
  LIntent.setDataAndType(LUri, StringToJString('application/pdf'));
  LIntent.setFlags(TJIntent.JavaClass.FLAG_GRANT_READ_URI_PERMISSION);
  TAndroidHelper.Activity.startActivity(LIntent);
end;

For iOS, one way is to use the QuickLook framework, which the DPF project has wrapped:

https://sourceforge.net/projects/dpfdelphiios/

They have a PDF Viewer demo that may help


推荐阅读