gpt4 book ai didi

android.os.FileUriExposedException : exposed beyond app through Intent. getData() 异常

转载 作者:搜寻专家 更新时间:2023-11-01 09:21:47 33 4
gpt4 key购买 nike

在针对 Android API < 24 的早期版本的 Delphi(10.3 Rio 之前)中,可以创建文件 Intent ,如问题 opening the image with the external gallery using delphi 的答案中所示。

但是,现在 10.3 以 Android API >= 24 为目标,该代码产生了这个问题的主题错误。

我努力在 Delphi Use android fileprovider to send intent to open and image file with the default android gallery 回答了这个问题但是这个问题作为重复问题被关闭了,即使答案更接近,是在 Android Java 而不是 Delphi 中。我的答案如下(经过几个小时的研究后得出)

最佳答案

uses
Androidapi.JNI.GraphicsContentViewText,
Androidapi.JNI.Media,
Androidapi.Helpers,
Androidapi.JNI.Net,
Androidapi.JNI.JavaTypes,
Androidapi.JNI.App,
Androidapi.JNI.Os,
Androidapi.JNI.Support,
System.IOUtils;

procedure TTabbedForm.Button1Click(Sender: TObject);
var
Intent: JIntent;
FileName, DestFileName: string;
Data: Jnet_Uri;
CompName: JComponentName;
lFile: JFile;
const
IMAGE_FILENAME = 'small_what.jpg';
begin

FileName := System.IOUtils.TPath.GetPublicPath + PathDelim + IMAGE_FILENAME; // deployed to "assets"

DestFileName := TPath.GetDownloadsPath + PathDelim + IMAGE_FILENAME;
TFile.Copy(FileName, DestFileName, true);

Intent := TJIntent.Create;
Intent.setAction(TJIntent.JavaClass.ACTION_VIEW);
if TJBuild_VERSION.JavaClass.SDK_INT >= TJBuild_VERSION_CODES.JavaClass.N then
begin
lFile := TJFile.JavaClass.init(StringToJString(FileName));
Intent.setFlags(TJIntent.JavaClass.FLAG_GRANT_READ_URI_PERMISSION);
Data := TJFileProvider.JavaClass.getUriForFile(TAndroidHelper.Context,
StringToJString('com.embarcadero.TestIntents.fileprovider'), lFile);
end
else
Data := TJnet_Uri.JavaClass.parse(StringToJString('file://' + DestFileName));

Intent.setDataAndType(Data, StringToJString('image/jpg'));

try
TAndroidHelper.Activity.startActivity(Intent);
except
on E: Exception do
begin
Label1.Text := E.Message;
end;
end;

关于android.os.FileUriExposedException : <filename> exposed beyond app through Intent. getData() 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54535225/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com