Delphi Android 12 文件分享代码示例
以下是使用 Delphi 在 Android 12 上实现文件分享的代码示例:
首先,需要在 uses 语句中添加 FMX.Platform.Android、Androidapi.JNI.GraphicsContentViewText 和 Androidapi.JNI.Net 包。
然后,可以使用以下代码实现文件分享:
- 获取文件路径
var
FilePath: string;
begin
FilePath := '/storage/emulated/0/Download/test.png'; // 文件路径
- 创建 Intent 对象
var
Intent: JIntent;
begin
Intent := TJIntent.Create;
- 设置 Intent 属性
Intent.setAction(TJIntent.JavaClass.ACTION_SEND); // 设置 Intent 为分享
Intent.setType(StringToJString('image/*')); // 设置分享类型为图片
Intent.putExtra(TJIntent.JavaClass.EXTRA_STREAM, TJParcelable.Wrap(TAndroidHelper.JFileToJParcelable(TJFile.JavaClass.init(StringToJString(FilePath))))); // 设置分享的文件
- 启动 Intent
TAndroidHelper.Activity.startActivity(Intent);
完整代码:
uses
FMX.Platform.Android, Androidapi.JNI.GraphicsContentViewText, Androidapi.JNI.Net;
procedure TForm1.Button1Click(Sender: TObject);
var
FilePath: string;
Intent: JIntent;
begin
FilePath := '/storage/emulated/0/Download/test.png'; // 文件路径
Intent := TJIntent.Create;
Intent.setAction(TJIntent.JavaClass.ACTION_SEND); // 设置 Intent 为分享
Intent.setType(StringToJString('image/*')); // 设置分享类型为图片
Intent.putExtra(TJIntent.JavaClass.EXTRA_STREAM, TJParcelable.Wrap(TAndroidHelper.JFileToJParcelable(TJFile.JavaClass.init(StringToJString(FilePath))))); // 设置分享的文件
TAndroidHelper.Activity.startActivity(Intent); // 启动 Intent
end;
需要注意的是,如果应用没有文件读写权限,需要先获取权限才能分享文件。可以使用以下代码获取权限:
if not TAndroidHelper.Context.checkSelfPermission(TJManifest_permission.JavaClass.READ_EXTERNAL_STORAGE) = TJPackageManager.JavaClass.PERMISSION_GRANTED then
begin
TAndroidHelper.Activity.requestPermissions([TJManifest_permission.JavaClass.READ_EXTERNAL_STORAGE], 0);
end;
原文地址: https://www.cveoy.top/t/topic/n48a 著作权归作者所有。请勿转载和采集!