- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
在针对 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/
需要你的帮助。我正在编写一个简单的应用程序来拍照并将它们保存在智能手机的内部存储器中,因为我没有外部 microSD。当我运行应用程序并点击拍照按钮时,它崩溃了。我该如何处理?提前谢谢你。以下是监控结
我正在尝试共享一个文本文件。我已经按照所有必需的步骤使用 FileProvider 共享文件 >=Nougat 但仍然收到 FileUriExposedException : Fatal Except
当文件名不包含阿拉伯语或 unicode 字符时,我不会得到异常 这是共享文件的代码: Intent intent = new Intent(Intent.ACTION_SEND); Uri file
这个问题在这里已经有了答案: android.os.FileUriExposedException: file:///storage/emulated/0/test.txt exposed beyo
作为前言,我熟悉编码(高中 2 年),但对于 Android Studio(以及一般而言的 Java)完全是新手。我一直在寻找问题的解决方案,但由于我缺乏经验,我不知道如何在我的项目中实现这些解决方案
在 Nougat 以下的安卓设备上,我可以毫无问题地将图像保存在设备的外部存储器中,然后存储文件路径并使用 Picasso 显示图像。 . 但是,在 Nougat 设备上进行测试时,每当我启动相机 I
我尝试打开本地 pdf,但由于以下异常而无法打开:android.os.FileUriExposedException: file:///storage/emulated/0/appid/1438-9
这个问题在这里已经有了答案: android.os.FileUriExposedException: file:///storage/emulated/0/test.txt exposed beyo
这个问题在这里已经有了答案: android.os.FileUriExposedException: file:///storage/emulated/0/test.txt exposed beyon
我想打开PDF,它在interaly保存在app/assets/pdf_name.pdf 我使用File f = new File(getContext().getCacheDir() +/pdf_n
我使用此代码从相机获取图片并将其放在 imageview 上: private void openCamera() { mMediaUri =getOutputMediaFileUri(M
这个问题在这里已经有了答案: android.os.FileUriExposedException: file:///storage/emulated/0/test.txt exposed beyo
在针对 Android API = 24 为目标,该代码产生了这个问题的主题错误。 我努力在 Delphi Use android fileprovider to send intent to ope
我尝试做一个按钮来打开相机并拍照。我的代码在这里 //for imports check on bottom of this code block public class HomeProfileAc
当我尝试打开文件时,应用程序崩溃了。它在 Android Nougat 下运行,但在 Android Nougat 上它崩溃了。它仅在我尝试从 SD 卡而不是系统分区打开文件时崩溃。一些权限问题? 示
当我尝试打开文件时,应用程序崩溃了。它在 Android Nougat 下工作,但在 Android Nougat 上它会崩溃。只有当我尝试从 SD 卡而不是系统分区打开文件时,它才会崩溃。一些权限问
我正在尝试使用以下代码从手机相机拍照: activity_main.xml: MainActivity.java: public class CameraDemoActivity ex
这是我的代码: private void createPdf() { File docsFolder = new File(Environment.getExternalStorageDire
我是一名优秀的程序员,十分优秀!