Delphi 11 Android 9 文件接收与发送:实用指南
Delphi 11 Android 9 文件接收与发送:实用指南
Delphi 11 提供了丰富的组件和功能,方便您在 Android 9 上实现文件接收和发送操作。本文将介绍两种常用的方法:
1. 使用 TAndroidIntent 组件发送和接收文件
TAndroidIntent 组件是处理 Android 意图的强大工具。以下代码示例展示如何使用它发送文件:
var
Intent: JIntent;
begin
Intent := TJIntent.Create;
Intent.setAction(TJIntent.JavaClass.ACTION_SEND);
Intent.setType(StringToJString('application/pdf'));
Intent.putExtra(TJIntent.JavaClass.EXTRA_STREAM, TAndroidHelper.ContentUriFromFile('/sdcard/myfile.pdf'));
SharedActivity.startActivity(Intent);
end;
这段代码首先创建一个新的意图,并设置其动作类型为 ACTION_SEND,表示要发送文件。setType 方法指定 MIME 类型,这里为 PDF 文件。最后,putExtra 方法将文件路径转换为 ContentUri 格式,并将其添加到意图中,最后使用 startActivity 方法启动该意图。
接收文件同样可以使用 TAndroidIntent 组件:
var
Intent: JIntent;
begin
Intent := SharedActivity.getIntent;
if Intent.getAction = TJIntent.JavaClass.ACTION_SEND then
begin
if Intent.getType.equals(StringToJString('application/pdf')) then
begin
var Uri: Jnet_Uri := Intent.getParcelableExtra(TJIntent.JavaClass.EXTRA_STREAM);
var FilePath: string := TAndroidHelper.UriToFileUri(Uri).getPath;
// 使用 FilePath 处理文件
end;
end;
end;
这段代码获取当前的意图,并判断其动作类型是否为 ACTION_SEND,以及 MIME 类型是否为 PDF。如果是,则从意图中获取文件的 ContentUri,并使用 TAndroidHelper.UriToFileUri 方法将其转换为文件路径。最后,您就可以使用获得的文件路径进行各种操作了。
2. 使用 TJFileChooser 组件选择文件
TJFileChooser 组件可以方便地从 Android 设备中选择文件。以下代码展示如何使用它选择 PDF 文件:
var
Intent: JIntent;
begin
Intent := TJIntent.Create;
Intent.setAction(TJIntent.JavaClass.ACTION_GET_CONTENT);
Intent.setType(StringToJString('application/pdf'));
SharedActivity.startActivityForResult(Intent, 0);
end;
这段代码创建一个新的意图,并设置其动作类型为 ACTION_GET_CONTENT,表示要选择文件。setType 方法指定 MIME 类型,这里为 PDF 文件。最后,startActivityForResult 方法启动该意图,并设置请求代码为 0。
当用户选择文件后,需要处理返回结果。以下代码展示如何处理:
procedure TForm1.HandleActivityResult(RequestCode, ResultCode: Integer; Data: JIntent);
var
Uri: Jnet_Uri;
begin
if (RequestCode = 0) and (ResultCode = TJActivity.JavaClass.RESULT_OK) then
begin
Uri := Data.getData;
var FilePath: string := TAndroidHelper.UriToFileUri(Uri).getPath;
// 使用 FilePath 处理文件
end;
end;
这段代码判断请求代码和结果代码是否符合预期,如果符合,则从意图中获取文件的 ContentUri,并使用 TAndroidHelper.UriToFileUri 方法将其转换为文件路径。最后,您就可以使用获得的文件路径进行各种操作了。
通过以上两种方法,您就可以轻松地在 Delphi 11 中实现 Android 9 文件接收和发送功能。希望本文能够帮助您快速入门,并在实际应用中取得成功!
原文地址: https://www.cveoy.top/t/topic/n6AQ 著作权归作者所有。请勿转载和采集!