Delphi 11.3可以使用Android的Intent来接收其他应用程序共享的文件。以下是一些步骤,可以在Delphi 11.3上实现此功能:

  1. 在你的应用程序中创建一个TIntentChooser组件(TIntentChooser是一个Delphi VCL控件,可帮助你处理Android的Intent)。

  2. 在TIntentChooser组件的OnReceiveIntent事件中,添加以下代码:

if AIntent.Action = TJIntent.JavaClass.ACTION_SEND then
begin
  //获取接收到的文件的URI
  var uri := AIntent.GetParcelableExtra(TJIntent.JavaClass.EXTRA_STREAM) as Jnet_Uri;
  
  //将URI转换为文件路径
  var file_path := JStringToString(TJFileProvider.JavaClass.getFilePath(TAndroidHelper.Context, uri));
  
  //在这里处理接收到的文件,例如将其复制到您的应用程序的文件夹中
end;
  1. 在AndroidManifest.xml文件中添加以下代码,以使你的应用程序能够接收其他应用程序共享的文件:
<provider
  android:name="androidx.core.content.FileProvider"
  android:authorities="com.yourcompany.yourapp.fileprovider"
  android:exported="false"
  android:grantUriPermissions="true">
  <meta-data
    android:name="android.support.FILE_PROVIDER_PATHS"
    android:resource="@xml/provider_paths" />
</provider>
  1. 在res/xml文件夹中创建一个名为provider_paths.xml的文件,并在其中添加以下代码:
<paths xmlns:android="http://schemas.android.com/apk/res/android">
  <external-path name="external_files" path="." />
</paths>

这将允许你的应用程序从其他应用程序接收共享的文件。请注意,此示例中的代码仅处理接收到的文件的URI,并将其转换为文件路径。你可能需要添加更多的代码来处理文件的复制、解析等操作


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

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