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 文件接收和发送功能。希望本文能够帮助您快速入门,并在实际应用中取得成功!

Delphi 11 Android 9 文件接收与发送:实用指南

原文地址: https://www.cveoy.top/t/topic/n6AQ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录