android - 如何打开默认文件管理器
问题描述
我将 Delphi 10.3 用于 Android 和 IOS 应用程序。
我想打开默认文件管理器,因为它打开让我单击添加附件,例如在 gmail 中。
要从设备中获取任何图像,我使用 TakePhotoFromLibraryAction 操作。如何对 PDF 文件执行相同操作?
解决方案
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
推荐阅读
- c++ - how do I load a pure blackwhite image as qimage?
- wix - Wix - 如何在 MSI Uninstall 上卸载服务
- java - 如何通过 Generic arrayList 访问对象中的特定数据?
- python - 给定行值,在 Pandas Dataframe 中找到对应的行索引
- r - 如何创建一个循环来计算系统发育信号并将结果存储在 R 中的多个向量中
- sql - 在 SQL 中插入不需要的值
- jmeter - 检索到的令牌值未正确传递 - 反斜杠和管道更改为百分比和数字
- android - 为什么 ProgressBar 以编程方式不可见?
- django - 为什么 Django-summernote 中的下拉菜单不起作用?
- asp.net - 在页面加载上调用函数 LordRecord() 不会更新按钮单击 ASP.NET 上的数据