Delphi 113 andriod 接收其他APP共享文件
Delphi 11.3可以使用Android的Intent来接收其他应用程序共享的文件。以下是一些步骤,可以在Delphi 11.3上实现此功能:
-
在你的应用程序中创建一个TIntentChooser组件(TIntentChooser是一个Delphi VCL控件,可帮助你处理Android的Intent)。
-
在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;
- 在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>
- 在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 著作权归作者所有。请勿转载和采集!