Delphi 11 andriod9 接收发送的文件
Delphi 11提供了许多用于在Android 9上接收和发送文件的组件和功能。以下是一些常见的方法:
- 使用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;
在这个例子中,我们使用TJIntent.Create方法创建一个新的意图,然后使用setAction方法设置ACTION_SEND动作,以便我们可以发送文件。setType方法设置MIME类型,这意味着我们只发送PDF文件。最后,我们使用putExtra方法将文件添加到Intent中,并使用TAndroidHelper.ContentUriFromFile方法将文件路径转换为ContentUri格式。最后,我们使用startActivity方法启动意图。
要接收文件,您可以使用以下代码:
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; // do something with the file end; end; end;
在这个例子中,我们使用getIntent方法获取当前的意图。如果动作是ACTION_SEND并且MIME类型是PDF,则我们可以从Intent中获取文件的ContentUri,并使用TAndroidHelper.UriToFileUri方法将其转换为文件路径。现在,您可以使用文件路径执行任何操作。
- 使用TJFileChooser组件选择文件
TJFileChooser组件可以用于从Android设备中选择文件。您可以使用以下代码:
var Intent: JIntent; begin Intent := TJIntent.Create; Intent.setAction(TJIntent.JavaClass.ACTION_GET_CONTENT); Intent.setType(StringToJString('application/pdf')); SharedActivity.startActivityForResult(Intent, 0); end;
在这个例子中,我们使用TJIntent.Create方法创建一个新的意图,然后使用setAction方法设置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; // do something with the file end; end;
在这个例子中,我们使用HandleActivityResult方法来处理结果。如果请求代码是0并且结果代码是RESULT_OK,则我们可以从Intent中获取文件的ContentUri,并使用TAndroidHelper.UriToFileUri方法将其转换为文件路径。现在,您可以使用文件路径执行任何操作
原文地址: https://www.cveoy.top/t/topic/fee1 著作权归作者所有。请勿转载和采集!