delphi如何写andriod12的文件分享代码必须能通过编译
以下是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/fcyE 著作权归作者所有。请勿转载和采集!